คำถามติดแท็ก dependency-management

การจัดการการอ้างอิงเช่นไลบรารีของบุคคลที่สามที่ใช้โดยโครงการซอฟต์แวร์

8
ความแตกต่างระหว่างการนำไปใช้และคอมไพล์ใน Gradle คืออะไร
หลังจากการปรับปรุงเพื่อ Android 3.0 และสตูดิโอสร้างโครงการใหม่ผมสังเกตเห็นว่าในbuild.gradleมีวิธีใหม่ที่จะเพิ่มการอ้างอิงใหม่แทนการcompileมีimplementationและแทนที่จะมีtestCompiletestImplementation ตัวอย่าง: implementation 'com.android.support:appcompat-v7:25.0.0' testImplementation 'junit:junit:4.12' แทน compile 'com.android.support:appcompat-v7:25.0.0' testCompile 'junit:junit:4.12' อะไรคือความแตกต่างระหว่างพวกเขากับสิ่งที่ฉันควรใช้

30
Android Studio: เพิ่ม jar เป็นไลบรารีหรือไม่
ฉันพยายามใช้ Android Studio ใหม่ แต่ดูเหมือนว่าฉันจะทำงานไม่ถูกต้อง ฉันใช้ไลบรารีGsonเพื่อทำให้เป็นอนุกรม / deserialize JSON-objects แต่ห้องสมุดก็ไม่ได้รวมอยู่ในโครงสร้าง ผมได้สร้างโครงการใหม่มีเพียงMainActivity คัดลอกgson-2.2.3.jarในโฟลเดอร์ / libs และเพิ่มเป็นการพึ่งพาไลบรารี (คลิกขวา -> เพิ่มเป็นไลบรารี) ซึ่งรวมถึง jar ใน android studio ดังนั้นจึงสามารถอ้างอิงได้จากไฟล์ต้นฉบับ เมื่อฉันพยายามเรียกใช้โครงการมันไม่สามารถคอมไพล์ได้ดังนั้นฉันจึงเพิ่ม: compile files('libs/gson-2.2.3.jar') เพื่อการอ้างอิงในไฟล์ de .gradle หลังจากนั้นมันก็คอมไพล์อย่างถูกต้อง แต่เมื่อรันแอพพลิเคชั่ClassDefNotFoundExceptionน ไม่มีใครรู้ว่าฉันทำอะไรผิดหรือเปล่า?


12
ความแตกต่างระหว่างการจัดการการพึ่งพาและการพึ่งพาใน Maven
ความแตกต่างระหว่างdependencyManagementและdependenciesคืออะไร? ฉันได้เห็นเอกสารที่เว็บไซต์ Apache Maven ดูเหมือนว่าการพึ่งพาที่กำหนดไว้ภายใต้dependencyManagementสามารถนำมาใช้ในโมดูลย่อยได้โดยไม่ต้องระบุรุ่น ตัวอย่างเช่น: โครงการหลัก (Pro-par) กำหนดการอ้างอิงภายใต้dependencyManagement: <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8</version> </dependency> </dependencies> </dependencyManagement> จากนั้นในลูกของ Pro-par ฉันสามารถใช้ Junit: <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> อย่างไรก็ตามฉันสงสัยว่าจำเป็นต้องกำหนด junit ใน parent pom หรือไม่? ทำไมไม่กำหนดโดยตรงในโมดูลที่ต้องการ?

11
ต้องการจัดการกับ“ Xerces hell” ใน Java / Maven หรือไม่
ในที่ทำงานของฉันการกล่าวถึงเพียงคำว่า Xerces นั้นเพียงพอที่จะกระตุ้นความโกรธแค้นจากผู้พัฒนา ภาพรวมคร่าวๆของคำถาม Xerces อื่น ๆ เกี่ยวกับ SO ดูเหมือนจะบ่งบอกว่าผู้ใช้ Maven เกือบทั้งหมดนั้น "ถูก" โดยปัญหานี้ในบางจุด น่าเสียดายที่การเข้าใจปัญหาต้องใช้ความรู้เล็กน้อยเกี่ยวกับประวัติของ Xerces ... ประวัติศาสตร์ Xerces เป็นตัวแยกวิเคราะห์ XML ที่ใช้กันอย่างแพร่หลายในระบบนิเวศ Java เกือบทุกไลบรารีหรือกรอบงานที่เขียนใน Java ใช้ Xerces ในบางความจุ ขวด Xerces รวมอยู่ในไบนารีอย่างเป็นทางการจนถึงทุกวันนี้ ยกตัวอย่างเช่น Xerces 2.11.0 การดำเนินขวดเป็นชื่อและไม่xercesImpl.jarxercesImpl-2.11.0.jar ทีม Xerces ไม่ได้ใช้ Mavenซึ่งหมายความว่าพวกเขาไม่ได้อัปโหลดปล่อยอย่างเป็นทางการเพื่อMaven กลาง Xerces เคยถูกปล่อยออกมาเป็น jar เดียว ( xerces.jar) แต่ถูกแบ่งออกเป็นสองขวดหนึ่งอันประกอบด้วย API ( xml-apis.jar) …

16
วิธีเพิ่มการเพิ่มขึ้นของ. jar ในไฟล์ build.gradle
ดังนั้นฉันได้ลองเพิ่มการขึ้นอยู่กับไฟล์. jar ในไฟล์ build.gradle ของฉัน: apply plugin: 'java' sourceSets { main { java { srcDir 'src/model' } } } dependencies { runtime files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar') runtime fileTree(dir: 'libs', include: '*.jar') } และคุณจะเห็นว่าฉันเพิ่มไฟล์. jar ลงในโฟลเดอร์ referencedL ไลบรารีที่นี่: https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1/referencedLibrary แต่ปัญหาคือเมื่อฉันเรียกใช้คำสั่ง: gradle build บนบรรทัดคำสั่งฉันได้รับข้อผิดพลาดต่อไปนี้: error: package com.google.gson does not exist import com.google.gson.Gson; นี่คือ repo …

6
จะติดตั้งแพ็คเกจเฉพาะเวอร์ชั่นด้วยการใช้ Composer ได้อย่างไร?
ฉันกำลังพยายามติดตั้งแพ็คเกจรุ่นที่ระบุโดยใช้ Composer ฉันพยายามcomposer installแล้วcomposer requireแต่พวกเขากำลังติดตั้งแพ็คเกจล่าสุด จะทำอย่างไรถ้าฉันต้องการรุ่นที่เก่ากว่า

4
วิธีล้างแคชใน Yarn
ฉันกำลังทำการทดสอบเกณฑ์มาตรฐานสำหรับ Yarn ของ Facebook สำหรับสิ่งนี้ฉันต้องล้างแคชโลกของฉัน มีคำสั่งสำหรับสิ่งนี้หรือไม่? ฉันลบ~/.yarn-cacheโฟลเดอร์ของฉันโดยบังคับ แต่นี่เป็นคู่มือ

5
Maven เทียบเท่า python [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันเป็นผู้พัฒนาจาวา / python และฉันขาดคุณสมบัติ maven โดยเฉพาะการจัดการการพึ่งพาและการสร้างอัตโนมัติ (ฉันหมายถึงคุณไม่ได้สร้าง แต่จะสร้างแพ็คเกจสำหรับการปรับใช้อย่างไร) มี python ที่เทียบเท่าเพื่อให้บรรลุคุณสมบัติเหล่านี้หรือไม่? หมายเหตุ: ฉันใช้ python 2.x ขอบคุณ

13
บังคับให้ดาวน์โหลดการพึ่งพารีลีสซ้ำโดยใช้ Maven
ฉันกำลังทำงานในโครงการที่มีการพึ่งพา X. X ขึ้นอยู่กับ Y ฉันเคยรวม Y ไว้ในปอมโปรเจ็กต์ของฉันอย่างชัดเจน อย่างไรก็ตามมันไม่ได้ถูกใช้และเพื่อทำให้สิ่งต่างๆสะอาดขึ้นฉันจึงเพิ่มมันลงในปอมของ X แทน X ถูกทำเครื่องหมายว่าเป็นการพึ่งพารีลีส ปัญหาคือว่าหลังจากที่ถอด Y จาก pom โครงการของฉันและเพิ่มลงใน pom X mvn -U clean packageของโครงการของฉันไม่ได้ยกขึ้นบน ฉันรู้ -U อัปเดตสแนปชอต แต่ไม่เผยแพร่ ดังนั้นโดยไม่ต้องลบไดเร็กทอรี ~ / .m2 / repositoryฉันจะบังคับให้ดาวน์โหลด X's pom ซ้ำได้อย่างไร นอกจากนี้ฉันลองวิ่งdependency:purge-local-repositoryแล้วก็ไม่ได้ผลเช่นกัน

6
ฉันจะเพิ่มการพึ่งพา Maven ใน Eclipse ได้อย่างไร
ฉันไม่รู้วิธีใช้ Maven เลย ฉันพัฒนามาสองสามปีกับ Eclipse และยังไม่จำเป็นต้องรู้ อย่างไรก็ตามตอนนี้ฉันกำลังดูเอกสารบางอย่างที่แนะนำให้ฉันทำดังต่อไปนี้: "หากต้องการรวมไว้ในโครงการของคุณเพียงเพิ่มการพึ่งพา Maven นี้ไปยังงานสร้างของคุณ" <repository> <id>jboss</id> <url>http://repository.jboss.org/maven2</url> </repository> ... <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jackson-provider</artifactId> <version>1.1.GA</version> </dependency> ฉันจะทำสิ่งนี้กับโครงการ Eclipse ของฉันได้อย่างไร โปรดสมมติว่าฉันไม่รู้อะไรเกี่ยวกับ Maven ฉันเพิ่งรู้ว่ามันอาจถูกติดตั้งบนคอมพิวเตอร์ของฉันโดยพิมพ์mvnบนบรรทัดคำสั่ง แต่นั่นเป็นขอบเขตความรู้ของฉันอย่างจริงจัง ฉันยินดีที่จะรู้อะไรเกี่ยวกับ Maven ต่อไปหากมีวิธีที่เทียบเท่าและไม่ใช่ Maven ในการทำตามคำแนะนำเหล่านี้ด้วย Eclipse


7
ใน Gradle ฉันจะประกาศการอ้างอิงทั่วไปในที่เดียวได้อย่างไร
ใน Maven มีคุณสมบัติที่มีประโยชน์มากเมื่อคุณสามารถกำหนดการพึ่งพาใน<dependencyManagement>ส่วนของ POM หลักและอ้างอิงการพึ่งพาจากโมดูลลูกโดยไม่ต้องระบุเวอร์ชันหรือขอบเขตหรืออะไรก็ตาม ทางเลือกอื่นใน Gradle คืออะไร?

5
ผู้แต่ง: จะค้นหาแพ็คเกจเวอร์ชันที่แน่นอนได้อย่างไร
สมมติว่าฉันกำลังเขียนห้องสมุด A ซึ่งขึ้นอยู่กับห้องสมุดอื่นเช่นคนเดียว ฉันต้องการติดตั้งเวอร์ชันล่าสุดของการพูดคนเดียวดังนั้นฉันจึงใส่สิ่งนี้ไว้ใน composer.json: { "require": { "monolog/monolog": "*.*.*" } } $ php composer.phar installจากนั้นผมทำงาน ฉันคาดหวังว่าจะพบเวอร์ชันที่ติดตั้งภายใน composer.lock แต่ไม่มี: { "hash": "d7bcc4fe544b4ef7561918a8fc6ce009", "packages": [ { "package": "monolog/monolog", "version": "dev-master", "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7" } ], "packages-dev": null, "aliases": [ ], "minimum-stability": "dev", "stability-flags": [ ] } ฉันต้องการเวอร์ชันเพราะฉันต้องการผูกไลบรารีของฉันกับชุดเวอร์ชันเฉพาะเช่น: หากฉันพบเวอร์ชัน 1.3.5 ใน composer.json ของฉันฉันต้องการใส่สิ่งนี้: …


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.