web-dev-qa-db-ja.com

Mavenスキップコンパイル

Mavenを使用して、ソースコードのみを必要とする特定のプラグインを実行したいのですが、Mavenに何もコンパイルさせたくありません(主にプロジェクトがコンパイルしないためです)。

コンパイル手順をスキップしてプラグインを起動し、生成されたリソースをニースJARにパッケージ化するようにMavenに指示するにはどうすればよいですか? (最後のステップの手順はすでにわかっています。)

追加情報:

だから、今私たちは多くのことを試しました、例えば:

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <excludes>
            <exclude>**/*</exclude>
        </excludes>
        <source>1.7</source>
            <target>1.7</target>
    </configuration>
    <executions>
        <execution>
            <phase>deploy</phase>
        </execution>
    </executions>
</plugin>

ただし、mvn packageこれを取得します。

[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ project ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling ALOTOF source files to /home/myname/dir/dir/project/target/classes

編集されたメッセージofc。

23
salbeira
<plugin>
   <groupId>org.Apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <executions>
     <execution>
       <id>default-compile</id>
       <phase>compile</phase>
       <goals>
          <goal>compile</goal>
       </goals>
       <configuration>
         <skipMain>true</skipMain> <--Skip
       </configuration>
     </execution>
   </executions>
</plugin>

これを「true」に設定して、メインソースのコンパイルをバイパスします。その使用は推奨されませんが、時には非常に便利です。ユーザープロパティはmaven.main.skipです。

mvn package -Dmaven.main.skip

Mavenの機能は、目標を含むプラグインで部分的に編成されています。これらの目標は、ライフサイクルの一部にならずに実行できます。たとえば、jar-pluginのjar-goalを呼び出すには:

mvn jar:jar

利用可能なプラグインのリスト を参照すると、おそらく探している機能が見つかるでしょう。必要な場合は、「アセンブリ」を定義して、アーカイブにバンドルするファイルを選択することもできます。

7
Matthias

デフォルトでMavenのコンパイルを防ぐには、最初にmaven-compiler-pluginの構成にseIncrementalCompilation = falseがあることを確認してください。

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <useIncrementalCompilation>false</useIncrementalCompilation>
    </configuration>
</plugin>

また、Mavenプロファイルがmaven-clean-pluginを使用する場合、デフォルトではproject.build.directoryで設定されたディレクトリを検出して削除します。 project.build.outputDirectoryproject.build.testOutputDirectory、およびproject.reporting.outputDirectory

これらのデフォルトクリーンアップを無効にするには、maven-clean-plugin構成に追加します:excludeDefaultDirectories = true

<excludeDefaultDirectories>true</excludeDefaultDirectories>
3
Noam Manos