次のような戦争仕様のサブプロジェクトがあります。
war {
from('resources') {
include '*.properties'
into 'WEB-INF/classes/'
}
webXml = file('src/main/webapp/WEB-INF/web.xml')
}
よく働く。Tomcat にデプロイ可能な単一のファット war ファイルを作成します。問題は、TomEE と JBoss にデプロイするときに競合が発生することです (つまり、Javax Servlet、Jersey などと)。したがって、一連の jar を戦争から除外したいと考えています。Gradle war documentation を見たところ、これには除外を使用する必要があるようです。私はそれを2つの異なる方法で試しましたが、瓶は戦争から除外されていません:
war {
// copy properties file in classes so that
// they may be loaded from classpath
from('resources') {
include '*.properties'
into 'WEB-INF/classes/'
}
// specify web xml
webXml = file('src/main/webapp/WEB-INF/web.xml')
// remove jars that conflict with TomEE
exclude '**/javax.inject-1.jar'
exclude '**/javax.servlet-2.5.0.v201103041518.jar'
exclude '**/servlet-api-2.5.jar'
exclude '**/validation-api-1.0.0.GA.jar'
}
これは、github でホストされている NetFlix/karyon プロジェクト内のサブプロジェクト (karyon-examples) にあります。サブプロジェクトの依存関係は次のようになります。
dependencies {
compile 'org.slf4j:slf4j-api:1.7.0'
runtime 'org.slf4j:slf4j-simple:1.7.0'
compile project(':karyon-extensions')
compile project(':karyon-admin-web')
}
また、特に他のファイルやサブプロジェクトでは、コンパイルとランタイムの依存関係などを編集することは避けたいと考えています。実際、上で除外しようとしている jar は、jetty と通常の tomcat で実行する場合は良性です。
ビルド スクリプトを複雑にすることなく、これらの jar ファイルを除外したいだけです。私は何が欠けていますか?
ありがとう