0

私はMaven Webプロジェクトに取り組んでいます。メインプロジェクトで使用したいいくつかのアプレットを含む別の Maven プロジェクトを作成しました。このプロジェクトは、メイン プロジェクトへの依存関係として追加されます。

私のアプレットプロジェクトPOMでは、

依存関係のある jar を作成するためのプラグインを追加しました。

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.3</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration>
    <executions>
      <execution>
        <id>make-assembly</id> <!-- this is used for inheritance merges -->
        <phase>package</phase> <!-- bind to the packaging phase -->
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
    </executions>
</plugin>

また、いくつかのセキュリティ制限を回避するために、uberjar に署名しました。

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <goal>sign</goal>
        </goals>
      </execution>
      <execution>
        <id>make-assembly</id>
        <phase>package</phase>
        <goals>
          <goal>sign</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <jarPath>${project.build.directory}/${project.build.FinalName}-${project.packaging}-with-dependencies.${project.packaging}</jarPath>
      <keystore>${basedir}/signstore.jks</keystore>
      <alias>signstore</alias>
      <storepass>signstore</storepass>
    </configuration>
  </plugin>

メイン プロジェクトをビルドするたびに、署名済みの uberjar を webapp フォルダーにコピーして、HTML ファイルで使用できるようにしたいと考えています。

これは可能ですか?依存関係なしでjarをコピーすることしかできませんでした。

4

1 に答える 1

0

私はjar-with-dependenciesで同じ問題を抱えていました.maven shade pluginを使用してビルドする方がはるかに簡単です:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>your.main.Class</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

これは、maven jar プラグインと何時間も戦った後、すぐに機能しました。また、依存関係間の競合も解決します

于 2012-05-07T14:27:14.630 に答える