0

Maven リポジトリを使用しており、settings.xml で構成されています

<settings>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8080/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>

この順序でMavenプロジェクトを持つ

parent
|
+child1
|
+child2
|
+child3

そして、親ポンで構成されたプロファイル、

<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>

  <groupId>com.test</groupId>
  <artifactId>parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>parent</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <modules>
    <module>child1</module>
    <module>child2</module>
    <module>child3</module>
  </modules>

  <profiles>
  <profile>
  <id>p1</id>
  <modules>
    <module>child1</module>
    <module>child2</module>
  </modules>
  </profile>
  <profile>
  <id>p2</id>
  <modules>
    <module>child2</module>
    <module>child3</module>
  </modules>
  </profile>
  </profiles>

</project>

ここで、child1 と child2 のみをビルドしたいので、次のコマンドを実行します。

mvn -P p1 clean

すべての子(child1、child2、child3)を構築しています

mvn -P p1 help:active-profiles

次のプロファイルがアクティブであることを示します。

  • nexus (ソース: 外部)
  • p1 (ソース: com.test:parent:0.0.1-SNAPSHOT)

選択したプロジェクトのみをビルドするにはどうすればよいですか?

4

1 に答える 1

1

マルチモジュール ビルドで単一の子をビルドする場合は、次のようにコマンド ラインを使用する必要があります。

mvn -pl child1 clean package

そして、あなたは与える必要があるかもしれません

mvn -pl -amd child1 clean package

ただし、そのような目的でプロファイルを使用しないでください。

于 2013-02-25T12:48:21.233 に答える