1

jarを作成する外部プログラムを使用します。この操作のコードは次のとおりです。

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <configuration>
                        <tasks>
                            <property environment="env" />
                            <property name="appname" value="hellojavaworld" />
                            <echoproperties />
                            <exec dir="" executable="respawn.exe" searchpath="true">
                                <arg value="${basedir}\src\main\java\${appname}.app" />
                            </exec>
                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

作成された jar は、後でビルド プロセスで使用される respawn.exe によって生成されます。サードパーティのjarをローカルのmavenリポジトリにインストールするという最も適切な方法を使用したかったのです。この目的のために、次のコマンドが使用されます。

mvn install:install-file -Dfile...

これは設計どおりに機能します。ビルド時に使用する pom.xml ファイルを作成したかったので (親子)、作成した jar をローカルの maven リポジトリにコピーします。Maven は、ローカル リポジトリにコピーされる独自の jar を作成するため、実行できません。質問は、maven を変更して別の jar を使用する方法ですか? respawn.exeによって作成されたjarとは異なるため、mavenを作成するjarをコピーしたくありません。

Jar の比較 このリンクは、これらの jar の違いを示しています。右側 (maven ローカル リポジトリ) の jar に、適切なクラスを含む abc フォルダーがないことがわかります。

質問はなぜですか?

4

1 に答える 1

0

*.javaMaven は、Java ソース ファイル ( ) を からsrc/main/javaにコンパイルしますtarget/classes。これらのクラスは、Maven によって jar にパッケージ化されます。

PSここでは、Mavenのデフォルトの場所のみが表示されます。

あなたの質問を見ると、Java ソース ファイルがないようです。

于 2015-10-12T14:26:57.657 に答える