4

SQL Server ドライバー (sqljdbc4.jar) に依存する Groovy スクリプトを作成しました。GroovyWrapper (以下のリンク) を使用して JAR にコンパイルできますが、どうすれば依存関係を Jar に入れることができますか? 「ベストプラクティス」のようなものを探しています。

https://github.com/sdanzan/groovy-wrapper

以下の返信はどちらも役に立ちましたが、署名付きの Jar ファイルに対してこれを行うにはどうすればよいですか? 例えば:

スレッド「メイン」の例外 java.lang.SecurityException: マニフェストのメイン属性の署名ファイル ダイジェストが無効です

4

2 に答える 2

6

Groovy ラッパー スクリプトでは、下の方に次の行が表示されます。

// add more jars here

そこに依存関係を追加できます。jar ファイルがビルド元と同じディレクトリにある場合は、次のような行を追加します。

zipgroupfileset( dir: '.', includes: 'sqljdbc4.jar' )

次に、スクリプトを再実行すると、jar に からのクラスが含まれsqljdbc4.jarます。

編集:

依存する jar ファイルが署名されていて、署名を維持する必要がある場合は、外部 jar を保持する必要があります。カスタム クラスローダーを使用しないと、jar ファイルを他の jar ファイル内に含めることはできません。ただし、マニフェストで依存関係を指定して、クラスパスを設定する必要がないようにすることができます。つまり、jar はjava -jar myjar.jar. ラッピング スクリプトのマニフェスト セクションを次のように更新します。

manifest {
    attribute( name: 'Main-Class', value: mainClass )
    attribute( name: 'Class-Path', value: 'sqljdbc4.jar' )
}
于 2013-09-24T16:36:34.617 に答える
1

GroovyWrapperリンクから、スクリプトのソースを見ると、次の行があります。

zipgroupfileset( dir: GROOVY_HOME, includes: 'embeddable/groovy-all-*.jar' )
zipgroupfileset( dir: GROOVY_HOME, includes: 'lib/commons*.jar' )
// add more jars here

そこに明示的に追加します。

于 2013-09-24T16:35:51.993 に答える