61

Maven プロジェクトで動作する jar ファイルを取得したいと考えています。

ビルド部分は次のとおりです。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>2.14</version>
            <dependencies>
                <dependency>
                    <groupId>com.puppycrawl.tools</groupId>
                    <artifactId>checkstyle</artifactId>
                    <version>6.4.1</version>
                </dependency>
            </dependencies>
            <configuration>
                <consoleOutput>true</consoleOutput>
                <configLocation>${basedir}/src/test/resources/checkstyle_swt1.xml</configLocation>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <descriptor>src/assembly/src.xml</descriptor>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <archive>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                            <addClasspath>true</addClasspath>
                            <mainClass>org.jis.Main</mainClass>                                
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

したがって、現在の私の問題は、メインクラスを pom.xml に適切に実装し、後で jar ファイルに実装する方法がわからないことです。フォルダ構造は src/main/java/org/jis/Main.java ですが、次の行を追加すると

<mainClass>src.main.java.org.jis.Main</mainClass>

うまくいきません。

前もって感謝します

4

7 に答える 7

3

基本的に Maven は、プロジェクトをビルドするために実行されるすべてのアクションの maven-plugin のコレクションを持つフレームワークです。

各ビルド フェーズは、プロジェクトの説明Project Object Model(POM)を使用して、対応する maven-plugin によって実行されます。

したがって、maven-compiler プラグインはプロジェクトをコンパイルするだけで、マニフェスト ファイルは作成しません。

maven-jar-plugin は、プロジェクトのマニフェスト ファイルの作成を担当します。

于 2016-04-12T17:44:46.510 に答える
0

質問からしばらく時間が経過したようですが、今後の読書のために到達した解決策を共有します.

IntelJ IDE で Maven プロジェクトを使用しています。C:\Users\Rogerio\Desktop\Script\src\main\java\Controller\MainClass.java のようなオペレーティング システムからコピーされたフル パスを使用しても、.java の有無にかかわらず、または com.src を試しても...アプリケーションのjarファイルの作成中にメインクラスが見つかりませんでした。

解決策は、次のように、maven-jar プラグインの mainClass タグ内に CDATA タグを配置することでした。

私のファイル構造:

[IntelliJ 上のディレクトリイメージ構造][1] [1]: https://i.stack.imgur.com/LHCWc.jpg

pom.xml の maven-jar プラグイン内:

`<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass><![CDATA[Controller.MainClass]]></mainClass>
                    </manifest>
                </archive>
            </configuration>

`

于 2021-02-03T15:46:31.293 に答える