我正在計劃一個多模塊maven項目。多模塊項目和maven中心
父POM定義了兩個模塊,A和B
- 模塊A需要從命令行示出了AWT的JDialog可執行文件。
- 模塊B將是一個正常的罐,其12-奇數依賴由客戶端下載(即,不是打包)
- 模塊B需要依賴於模塊A.
- 想及時罐子儘可能小爲分佈在Maven Central上。
我的問題:
1.多模塊maven項目是否是實現這些目標的正確途徑?
2.這兩個模塊是否需要分別發佈到maven central?
我正在計劃一個多模塊maven項目。多模塊項目和maven中心
父POM定義了兩個模塊,A和B
我的問題:
1.多模塊maven項目是否是實現這些目標的正確途徑?
2.這兩個模塊是否需要分別發佈到maven central?
這看起來像是多模塊構建的典型場景。
.
├── mod-a
│ └── pom.xml
├── mod-b
│ └── pom.xml
└── pom.xml (parent)
父只包含模塊列表(二)它是這樣的相似:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.soebes.smpp</groupId>
<artifactId>smpp</artifactId>
<version>0.7.1</version>
</parent>
<groupId>com.soebes.training.first</groupId>
<artifactId>project-parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Project : Parent</name>
<scm>
Define the SCM information here...
</scm>
<modules>
<module>mod-a</module>
<module>mod-b</module>
</modules>
</project>
每個孩子都應該是這樣的相似:
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.soebes.training.first</groupId>
<artifactId>project-parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<name>Project : Mod-A</name>
<artifactId>mod-a</artifactId>
</project>
你MODULE- b應該看起來像這樣:
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.soebes.training.first</groupId>
<artifactId>project-parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<name>Project : Mod-B</name>
<artifactId>mod-b</artifactId>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>mod-a</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
現在你可以從父模塊構建,所有這些應該被部署到中央,並且沒有必要單獨做這個事情,你可以從父母那裏做到這一點...
我已經創建了包含2個模塊的多項目項目,正如我在原始問題中所述。編譯和構建。尺寸要小得多。模塊AWT表單啓動。我的後續問題是:1.模塊A中的方法是否能夠在必須從客戶端項目的模塊B中調用的情況下成功運行? 2.客戶是依賴於這兩個模塊還是僅依賴於父項? –
我不明白的是你的模塊b客戶端下載的依賴關係?您的AWT JDialog的最終用戶?你應該爲用戶創建準備好的工件,就像一個zip壓縮包一樣,可以下載解壓縮並運行它... – khmarbaise
模塊A包含的方法不僅需要從AWT表單(用於編寫許可證文件)調用,而且當它正在執行時,也從模塊B中執行。 –