- 建立 parent project
$ mvn archetype:generate \ -DgroupId="com.cbxsoftware.cbx" \ -DartifactId="parent-project"
- 刪除 parent project 的
src/
- 指定 packaging 為
pom
<!-- parent-project/pom.xml --> <packaging>pom</packaging>
- 建立子專案
- web: webapp 架構(packaging 會是
war
)# parent-project/ $ mvn archetype:generate \ -DarchetypeGroupId="org.apache.maven.archetypes" \ -DarchetypeArtifactId="maven-archetype-webapp" \ -DarchetypeVersion="1.4" \ -DgroupId="com.cbxsoftware.cbx" \ -DartifactId="web"
- core, service: 一般架構(Packaging 會是預設的
jar
)$ mvn archetype:generate \ -DgroupId="com.cbxsoftware.cbx" \ -DartifactId="core" $ mvn archetype:generate \ -DgroupId="com.cbxsoftware.cbx" \ -DartifactId="service"
- web: webapp 架構(packaging 會是
- 所有子專案都要依賴
junit
及org.slf4j
,設定於上層<!-- parent-project/pom.xml --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.36</version> </dependency> </dependencies>
- 只有 core 要用到
commons-lang3
,設定於該層<!-- parent-project/core/pom.xml --> <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> </dependencies>
- web 內要用到 core & service ,設定於該層
<!-- parent-project/web/pom.xml --> <dependencies> <dependency> <groupId>com.cbxsoftware.cbx</groupId> <artifactId>core</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.cbxsoftware.cbx</groupId> <artifactId>service</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
於 parent project 執行 clean install
# parent-project/
$ mvn clean install