0

したがって、私は WAS8.5 を使用しており、プロジェクトに WAS ライブラリを含める必要があります。私はこれを試しました...

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
      <archive>
          <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              <addClasspath>true</addClasspath>
          </manifest>
          <manifestEntries>
              <Class-Path>C:\Program Files (x86)\IBM\WebSphere\AppServer\plugins</Class-Path>
              <Class-Path>C:\Program Files (x86)\IBM\WebSphere\AppServer\java\jre\lib</Class-Path>
          </manifestEntries>
      </archive>
    </configuration>
</plugin>

でもまだ見える…

エラー: パッケージ javax.jms が存在しません

にもかかわらず...

バイナリ ファイル ./plugins/javax.j2ee.jms.jar が一致する

しかし、それは mvn パッケージではうまくいかないようですので、私の質問は2つ折りのようなものです

1.) mvn package または mvn jar:jar を使用する必要があります。後者はクラスの保存場所を認識しないようです。jar を使用する場合、ソース ディレクトリを含めるにはどうすればよいですか。

2.) パッケージを使用している場合、クラスパスにフォルダーを含めるにはどうすればよいですか?

4

2 に答える 2

1

実行時の問題ではなく、コンパイル時の問題について話していると思います。マニフェスト情報はランタイム用であり、正しく構成した方法では、システムにのみ役立ちます。Apache Maven は予測可能なビルドに関するものです。つまり、ライブラリ フォルダーを定義する代わりに、すべての依存関係を定義する必要があります。必要な jar をローカル リポジトリに「インストール」する必要があります (インストールは実際にはコピーです)。http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.htmlを参照してください。

于 2013-09-20T20:34:42.627 に答える
0

ビルドを自動化し、コマンドラインを気にしないために見つけた最善の解決策は、maven-install-plugin を使用して pom.xml からインストールすることでした。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.2</version>
            <executions>                    
                <execution>
                    <id>proguard</id>
                    <inherited>false</inherited>
                    <phase>validate</phase>
                    <configuration>
                        <file>${pom.basedir}/lib/proguard-4.8.jar</file>
                        <repositoryLayout>default</repositoryLayout>
                        <groupId>net.sf.proguard</groupId>
                        <artifactId>proguard</artifactId>
                        <version>4.8</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                    </configuration>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                </execution>
           </plugin>

そこで、jar を $PROJECT_HOME/lib フォルダーに入れ、この実行を検証フェーズに追加して、各 Maven 実行にインストールされるようにします。

これは大量のテキストですが、他のマシンでのビルドを完全に自動化します。

于 2013-09-23T13:50:04.377 に答える