Attached sample buildfile (apologies for the size), but the significant
part is reasonably concise.
On 4/5/21 2:20 pm, Antoine Toulme wrote:
Do you think you could recreate this situation with a test case? It might be
easy to decide which dependencies to include in the pom.
On May 3, 2021, at 9:18 PM, Robin Garner <[email protected]> wrote:
I have a project that comprises a dozen or so subprojects. The eventual
web app has on the order of 200 dependencies, but at the 'low end' of the
subprojects there's an API jar file that by rights should have exactly one
dependency.
When I upload the API artifact to nexus, the pom.xml that is generated
contains the complete set of project dependencies, not simply the API
dependencies.
Some trial and error shows that the sub-project's dependency list is used
for compiling and running unit tests, but POM generation and eclipse
.classpath generation seem to use the union of all the subproject
dependencies.
Is this a bug ? I'm currently working around the issue using the
'pom.content' method to hand-build the exported pom.xml file, but IWBNI
there was a better way.
I'm running buildr 1.5.8 on ruby 2.4.
Thanks in advance,
Robin
# Version number for this release
VERSION_NUMBER = "1"
# Group identifier for your projects
GROUP = "test.project"
require 'net/http'
tapestry_version = '5.3.8'
tapestry_tng = '5.3.7'
require 'buildr/jdepend'
require 'buildr/hibernate'
require 'buildr/checkstyle'
require 'buildr/wsgen'
TAPESTRY_CORE =
artifact("org.apache.tapestry:tapestry-core::#{tapestry_version}")
TAPESTRY_ANN =
artifact("org.apache.tapestry:tapestry5-annotations:jar:#{tapestry_version}")
TAPESTRY_IOC =
transitive("org.apache.tapestry:tapestry-ioc:jar:#{tapestry_version}")
TAPESTRY_PLASTIC =
artifact("org.apache.tapestry:plastic:jar:#{tapestry_version}")
TAPESTRY_TEST =
artifact("org.apache.tapestry:tapestry-test:jar:#{tapestry_version}")
TAPESTRY_FUNC =
artifact("org.apache.tapestry:tapestry-func:jar:#{tapestry_version}")
TAPESTRY_JAVADOC =
artifact("org.apache.tapestry:tapestry-javadoc:jar:#{tapestry_version}")
TAPESTRY_JSON =
artifact("org.apache.tapestry:tapestry-json:jar:#{tapestry_version}")
TAPESTRY_YUI_COMPRESS =
artifact("org.apache.tapestry:tapestry-yuicompressor:jar:#{tapestry_version}")
TAPESTRY_UPLOAD =
artifact("org.apache.tapestry:tapestry-upload:jar:#{tapestry_version}")
TAPESTRY_BEANVAL =
artifact("org.apache.tapestry:tapestry-beanvalidator:jar:#{tapestry_version}")
TAPESTRY_BOOTSTRAP = artifact("com.trsvax:tapestry-bootstrap:jar:2.1.3")
#
# FlowLogix libraries look nice, but they depend on Prototype, and we disable
prototype
# to make jquery behave. Look again after T5.4, maybe.
#
TAPESTRY_FLOWLOGIX = artifact("com.flowlogix:flowlogix-tapestry:jar:2.3.1")
TAPESTRY_FLOWLOGIX_JEE = artifact("com.flowlogix:flowlogix-jee:jar:2.3.1")
JAVAX_CDI_API = artifact("javax.enterprise:cdi-api:jar:1.2")
JAVAX_EJB_API = artifact("javax.ejb:ejb-api:jar:3.0")
FLOWLOGIX = [ TAPESTRY_FLOWLOGIX, TAPESTRY_FLOWLOGIX_JEE, JAVAX_CDI_API,
JAVAX_EJB_API ]
#
# Mock SMTP server
#
DUMBSTER = artifact("com.bitmechanic:dumbster:jar:1.9.0.2")
CHENILLEKIT_CORE = artifact("org.chenillekit:chenillekit-core:jar:1.3.3")
CHENILLEKIT_TAP = artifact("org.chenillekit:chenillekit-tapestry:jar:1.3.3")
CHENILLEKIT = [ CHENILLEKIT_CORE, CHENILLEKIT_TAP ]
COMMONS_CODEC = artifact("commons-codec:commons-codec:jar:1.5")
COMMONS_COLLECTIONS =
artifact("commons-collections:commons-collections:jar:3.2.1")
COMMONS_CONFIGURATION =
artifact("commons-configuration:commons-configuration:jar:1.9")
COMMONS_BEANUTILS = artifact("commons-beanutils:commons-beanutils:jar:1.8.3")
COMMONS_DBCP = artifact("org.apache.commons:commons-dbcp2:jar:2.1.1")
COMMONS_POOL = artifact("org.apache.commons:commons-pool2:jar:2.4.2")
COMMONS_EXEC = artifact("org.apache.commons:commons-exec:jar:1.1")
COMMONS_IO = artifact("commons-io:commons-io:jar:2.0.1")
COMMONS_NET = artifact("commons-net:commons-net:jar:3.1")
COMMONS_LANG = artifact("commons-lang:commons-lang:jar:2.6")
COMMONS_LOG = artifact("commons-logging:commons-logging:jar:1.1.1")
COMMONS_UPLOAD = artifact("commons-fileupload:commons-fileupload:jar:1.2.2")
COMMONS_VALIDATOR = artifact("commons-validator:commons-validator:jar:1.6")
JTA = artifact("javax.transaction:jta:jar:1.1")
JXVAL = artifact("javax.validation:validation-api:jar:1.1.0.Final")
JAVAMELODY = artifact("net.bull.javamelody:javamelody-core:jar:1.83.0")
JROBIN = artifact("com.purej:jrobin:jar:1.7.1")
H2 = artifact("com.h2database:h2:jar:1.3.168")
DOM4J = artifact("dom4j:dom4j:jar:1.6.1")
SLF4J_API = artifact("org.slf4j:slf4j-api:jar:1.6.1")
SLF4J_LOG4J = artifact("org.slf4j:slf4j-log4j12:jar:1.6.1")
SLF4J_EXT = artifact("org.slf4j:slf4j-ext:jar:1.6.1")
#SLF4J_API_17 = artifact("org.slf4j:slf4j-api:jar:1.7.2")
#SLF4J_LOG4J_17 = artifact("org.slf4j:slf4j-log4j12:jar:1.7.2")
# HIB_JPA2 =
artifact("org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.1.Final")
HIB_CORE = transitive("org.hibernate:hibernate-core:jar:4.3.11.Final")
HIB_COMMONS_ANN =
artifact("org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final")
HIB_VALIDATOR = artifact("org.hibernate:hibernate-validator:jar:5.1.2.Final")
#HIB_C3P0 = transitive("org.hibernate:hibernate-c3p0:jar:4.3.11.Final")
HIB_HIKARI = artifact("org.hibernate:hibernate-hikaricp:jar:4.3.11.Final")
HIKARI_CP = artifact("com.zaxxer:HikariCP:jar:2.5.1")
# The OpenSymphony oscache library to use as a 2nd level hibernate cache
#OSCACHE = artifact("opensymphony:oscache:jar:2.4.1")
HIB_EHCACHE = artifact("org.hibernate:hibernate-ehcache:jar:4.3.11.Final")
EHCACHE = artifact("net.sf.ehcache:ehcache-core:jar:2.6.10")
JEWEL_CLI = artifact("args4j:args4j:jar:2.0.29")
CLASSMATE = artifact("com.fasterxml:classmate:jar:1.0.0")
#
# Apache Velocity templating engine
#
VELOCITY = transitive('org.apache.velocity:velocity:jar:1.7')
# unused
HIB_ANN = artifact("org.hibernate:hibernate-annotations:jar:3.5.6-Final")
HIBERNATE = [ HIB_CORE, DOM4J, HIB_COMMONS_ANN, COMMONS_COLLECTIONS,
JTA, HIB_VALIDATOR, CLASSMATE, HIB_HIKARI, HIKARI_CP,
HIB_EHCACHE, EHCACHE ]
#
# Cron4j job scheduler
#
CRON4J = artifact("it.sauronsoftware.cron4j:cron4j:jar:2.2.5");
#
# The Ostermiller utils provide the CSV parser we use.
#
OSTERMILLER = artifact("org.ostermiller:utils:jar:1.07.00")
#
# Web dependencies
#
#jetty_version = '9.2.19.v20160908'
jetty_version = '9.4.6.v20170531'
ANTLR = artifact("antlr:antlr:jar:2.7.7")
ANTLR_RUNTIME = artifact("org.antlr:antlr-runtime:jar:3.3")
AOP = artifact('aopalliance:aopalliance:jar:1.0')
BCPROV_15 = artifact('bouncycastle:bcprov-jdk15:jar:135')
BSH = artifact('org.beanshell:bsh:jar:2.0b4')
CGLIB = artifact('cglib:cglib-nodep:jar:2.2')
CSSPARSER = artifact('net.sourceforge.cssparser:cssparser:jar:0.9.5')
EASYMOCK = artifact('org.easymock:easymock:jar:3.0')
ECLIPSE_JETTY_CONT =
artifact("org.eclipse.jetty:jetty-continuation:jar:#{jetty_version}")
ECLIPSE_JETTY_HTTP =
artifact("org.eclipse.jetty:jetty-http:jar:#{jetty_version}")
ECLIPSE_JETTY_IO = artifact("org.eclipse.jetty:jetty-io:jar:#{jetty_version}")
ECLIPSE_JETTY_JNDI =
artifact("org.eclipse.jetty:jetty-jndi:jar:#{jetty_version}")
ECLIPSE_JETTY_PLUS =
artifact("org.eclipse.jetty:jetty-plus:jar:#{jetty_version}")
ECLIPSE_JETTY_SEC =
artifact("org.eclipse.jetty:jetty-security:jar:#{jetty_version}")
ECLIPSE_JETTY_SERVER =
artifact("org.eclipse.jetty:jetty-server:jar:#{jetty_version}")
ECLIPSE_JETTY_SERVLET =
artifact("org.eclipse.jetty:jetty-servlet:jar:#{jetty_version}")
ECLIPSE_JETTY_UTIL =
artifact("org.eclipse.jetty:jetty-util:jar:#{jetty_version}")
ECLIPSE_JETTY_WEBAPP =
artifact("org.eclipse.jetty:jetty-webapp:jar:#{jetty_version}")
ECLIPSE_JETTY_XML = artifact("org.eclipse.jetty:jetty-xml:jar:#{jetty_version}")
FINDBUGS = artifact('com.google.code.findbugs:jsr305:jar:1.3.9')
GERONIMO_JTA_SPEC =
artifact('org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1')
GERONIMO_SPEC_JTA = artifact('geronimo-spec:geronimo-spec-jta:jar:1.0-M1')
GUAVA = artifact('com.google.guava:guava:jar:21.0')
GUICE = artifact('com.google.inject:guice:jar:2.0')
HTMLUNIT = artifact('net.sourceforge.htmlunit:htmlunit:jar:2.9')
HTMLUNIT_CORE = artifact('net.sourceforge.htmlunit:htmlunit-core-js:jar:2.9')
#
# Apache HTTP Library
#
HTTP_CLIENT = artifact('org.apache.httpcomponents:httpclient:jar:4.5.6')
HTTP_CORE = artifact('org.apache.httpcomponents:httpcore:jar:4.4.10')
HTTP_MIME = artifact('org.apache.httpcomponents:httpmime:jar:4.5.6')
JAVAX_INJECT = artifact('javax.inject:javax.inject:jar:1')
JAVAX_MAIL = artifact('javax.mail:mail:jar:1.4')
JCIP_ANN = artifact('net.jcip:jcip-annotations:jar:1.0')
JCOMMANDER = artifact('com.beust:jcommander:jar:1.12')
JETTY = artifact('org.eclipse.jetty:jetty-servlet:jar:9.3.11.v20160721')
JNA = artifact('net.java.dev.jna:jna:jar:3.3.0')
JSON = artifact('org.json:json:jar:20080701')
JUNIT3 = artifact('junit:junit:jar:3.8.1')
LOG4J = artifact('log4j:log4j:jar:1.2.16')
MX4J_TOOLS = artifact('mx4j:mx4j-tools:jar:3.0.1')
NEKOHTML = artifact('net.sourceforge.nekohtml:nekohtml:jar:1.9.15')
OBJENESIS = artifact('org.objenesis:objenesis:jar:1.2')
RHINO = artifact('rhino:js:jar:1.6R7')
SAC = artifact('org.w3c.css:sac:jar:1.3')
SEL_CORE = artifact('org.seleniumhq.selenium.core:selenium-core:jar:1.0.1')
SEL_AND_DRIVER =
artifact('org.seleniumhq.selenium:selenium-android-driver:jar:2.14.0')
SEL_API = artifact('org.seleniumhq.selenium:selenium-api:jar:2.14.0')
SEL_CHR_DRIVER =
artifact('org.seleniumhq.selenium:selenium-chrome-driver:jar:2.14.0')
SEL_FF_DRIVER =
artifact('org.seleniumhq.selenium:selenium-firefox-driver:jar:2.14.0')
SEL_HU_DRIVER =
artifact('org.seleniumhq.selenium:selenium-htmlunit-driver:jar:2.14.0')
SEL_IE_DRIVER =
artifact('org.seleniumhq.selenium:selenium-ie-driver:jar:2.14.0')
SEL_IP_DRIVER =
artifact('org.seleniumhq.selenium:selenium-iphone-driver:jar:2.14.0')
SEL_JAVA = artifact('org.seleniumhq.selenium:selenium-java:jar:2.14.0')
SEL_JAVA_CL_DR =
artifact('org.seleniumhq.selenium.client-drivers:selenium-java-client-driver:jar:1.0.2')
SEL_JAVA_TESTNG =
artifact('org.seleniumhq.selenium.client-drivers:selenium-java-testng-helper:jar:1.0.1')
SEL_REMOTE_DRIVER =
artifact('org.seleniumhq.selenium:selenium-remote-driver:jar:2.14.0')
SEL_SERVER = artifact('org.seleniumhq.selenium:selenium-server:jar:2.14.0')
SEL_SUPPORT = artifact('org.seleniumhq.selenium:selenium-support:jar:2.14.0')
SERVLET_API = artifact('javax.servlet:javax.servlet-api:jar:3.1.0')
SERVLET_JSTL = artifact('javax.servlet:jstl:jar:1.2')
#SERVLET_API = artifact('org.mortbay.jetty:servlet-api-2.5:jar:6.1.9')
SNAKEYAML = artifact('org.yaml:snakeyaml:jar:1.8')
STRINGTEMPLATE = artifact('org.antlr:stringtemplate:jar:3.2.1')
TOMCAT_ANN_API = artifact('org.apache.tomcat:annotations-api:jar:6.0.30')
TOMCAT_API = artifact('org.apache.tomcat:servlet-api:jar:6.0.30')
TOMCAT_CATALINA = artifact('org.apache.tomcat:catalina:jar:6.0.30')
TOMCAT_COYOTE = artifact('org.apache.tomcat:coyote:jar:6.0.30')
TOMCAT_DBCP = artifact('org.apache.tomcat:dbcp:jar:6.0.30')
TOMCAT_JULI = artifact('org.apache.tomcat:juli:jar:6.0.30')
XALAN = artifact('xalan:xalan:jar:2.7.1')
XALAN_SERIALIZER = artifact('xalan:serializer:jar:2.7.1')
XERCES_IMPL = artifact('xerces:xercesImpl:jar:2.9.1')
XML_APIS = artifact('xml-apis:xml-apis:jar:1.3.04')
YUI_COMPRESS = artifact('com.yahoo.platform.yui:yuicompressor:jar:2.4.6')
TAP_SECURITY = artifact('org.tynamo:tapestry-security:jar:0.5.1')
TAP_COMMON = artifact('org.tynamo:tynamo-common:jar:0.0.3')
TAP_EXCEPTION = artifact('org.tynamo:tapestry-exceptionpage:jar:0.1.2')
SHIRO_CORE = artifact('org.apache.shiro:shiro-core:jar:1.2.1')
SHIRO_WEB = artifact('org.apache.shiro:shiro-web:jar:1.2.1')
resteasy_version = '3.0.1.Final'
TAP_RESTEASY = artifact("org.tynamo:tapestry-resteasy:jar:0.3.2")
JB_RESTEASY_JAXRS_API =
artifact("org.jboss.resteasy:jaxrs-api:jar:#{resteasy_version}")
JB_RESTEASY_JAXRS =
artifact("org.jboss.resteasy:resteasy-jaxrs:jar:#{resteasy_version}")
JB_RESTEASY_PROV =
artifact("org.jboss.resteasy:resteasy-jaxb-provider:jar:#{resteasy_version}")
JB_RESTEASY_JSAPI =
artifact("org.jboss.resteasy:resteasy-jsapi:jar:#{resteasy_version}")
JB_RESTEASY_CLIENT =
artifact("org.jboss.resteasy:resteasy-client:jar:#{resteasy_version}")
JB_RESTEASY_TJWS = artifact("org.jboss.resteasy:tjws:jar:#{resteasy_version}")
# Testing only
JB_RESTEASY_NETTY =
transitive("org.jboss.resteasy:resteasy-netty:jar:#{resteasy_version}").reject
{
|a| a.group == 'org.slf4j'
}
#print JB_RESTEASY_NETTY
#NETTY = artifact("io.netty:netty-all:jar:4.1.21.Final")
JAXRS_API = artifact("javax.ws.rs:javax.ws.rs-api:jar:2.0.1")
JAXANN_API = artifact("javax.annotation:javax.annotation-api:jar:1.3")
SCANNOTATION = artifact("org.scannotation:scannotation:jar:1.0.3")
SWAGGER_CORE = transitive('io.swagger.core.v3:swagger-core:jar:2.0.3')
SWAGGER_ANN = artifact('io.swagger.core.v3:swagger-annotations:jar:2.0.3')
SWAGGER_MODELS = artifact('io.swagger.core.v3:swagger-models:jar:2.0.3')
SWAGGER_INT = artifact('io.swagger.core.v3:swagger-integration:jar:2.0.3')
SWAGGER_JAXRS = transitive('io.swagger.core.v3:swagger-jaxrs2:jar:2.0.3')
SWAGGER_SERVLET =
artifact('io.swagger.core.v3:swagger-jaxrs2-servlet-initializer:jar:2.0.3')
SWAGGER = [ SWAGGER_CORE, SWAGGER_ANN, SWAGGER_MODELS, SWAGGER_INT,
SWAGGER_JAXRS, SWAGGER_SERVLET ]
#
# Jackson JSON library and associated provider for resteasy
#
# jackson_version = '2.8.9'
# JACKSON_CORE =
artifact("com.fasterxml.jackson.core:jackson-core:jar:#{jackson_version}")
# JACKSON_DATABIND =
artifact("com.fasterxml.jackson.core:jackson-databind:jar:#{jackson_version}")
# JACKSON_ANN =
artifact("com.fasterxml.jackson.core:jackson-annotations:jar:#{jackson_version}")
# JACKSON_JSON_PROV =
artifact("com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:#{jackson_version}")
JB_RESTEASY_JACKSON =
transitive("org.jboss.resteasy:resteasy-jackson-provider:jar:#{resteasy_version}")
JACKSON_PROV = [ JB_RESTEASY_JACKSON ]
RESTEASY = [ TAP_RESTEASY, JB_RESTEASY_JAXRS_API, JB_RESTEASY_JAXRS,
JB_RESTEASY_PROV,
JB_RESTEASY_JSAPI, JAXRS_API, HTTP_CLIENT,
JAXANN_API, SCANNOTATION ] << SWAGGER << JACKSON_PROV
RESTEASY_TEST = [ JB_RESTEASY_TJWS ]
RESTEASY_CLIENT_TEST = [ JB_RESTEASY_NETTY, JB_RESTEASY_JACKSON ]
#
# Jcabi-manifests provides a handy parser for Manifest files
#
JCABI_MANIFESTS = artifact("com.jcabi:jcabi-manifests:jar:1.1")
JCABI_LOG = artifact("com.jcabi:jcabi-log:jar:0.14")
JCABI = [ JCABI_MANIFESTS, JCABI_LOG ]
#
# SAML auth
#
OPENSAML = artifact("org.opensaml:opensaml:jar:2.5.1-1")
OPENSAML_XML = artifact("org.opensaml:xmltooling:jar:1.3.2-1")
OPENWS = artifact("org.opensaml:openws:jar:1.4.2-1")
BUJI_PAC4J = artifact("io.buji:buji-pac4j-core:jar:1.3.1")
PAC4J_CORE = artifact("org.pac4j:pac4j-core:jar:1.6.0")
PAC4J_SAML = artifact("org.pac4j:pac4j-saml:jar:1.6.0")
XMLSEC = artifact("xml-security:xmlsec:jar:1.3.0")
JODA_TIME = artifact("joda-time:joda-time:jar:1.6.2")
SHIB_SUPPORT = artifact("net.shibboleth.utilities:java-support:jar:7.1.1")
ESAPI = artifact("org.owasp.esapi:esapi:jar:2.1.0")
NOT_YET_COMMONS_SSL = artifact("ca.juliusdavies:not-yet-commons-ssl:jar:0.3.9")
SAML = [ OPENSAML, OPENSAML_XML, OPENWS, PAC4J_CORE, PAC4J_SAML, SHIB_SUPPORT,
ESAPI, XMLSEC,
JODA_TIME, NOT_YET_COMMONS_SSL ]
HTMLWRITER = artifact("scu:html-writer:jar:1.0.3")
#
# New targets use Kafka message queue for a more loosely coupled interface
#
KAFKA_CLIENT = artifact("org.apache.kafka:kafka-clients:jar:2.4.0")
#KAFKA_JSON = artifact("org.apache.kafka:connect-json:jar:2.4.0")
KAFKA = [ KAFKA_CLIENT ]
#CURATOR_TEST = artifact("org.apache.curator:curator-test:jar:2.8.0")
#KAFKA_SERVER = artifact("org.apache.kafka:kafka_2.12:jar:2.4.0")
KAFKA_TEST = [ ]
#
# Dependencies of the API project
#
LDAPSDK = artifact("com.unboundid:unboundid-ldapsdk:jar:4.0.13")
API_DEPS = [ LDAPSDK ]
#
# Dependencies of the core project
#
CORE_DEPS = API_DEPS << [ OSTERMILLER, TAPESTRY_ANN, TAPESTRY_IOC,
TAPESTRY_PLASTIC, SLF4J_API ] <<
[ SLF4J_LOG4J, SLF4J_EXT, COMMONS_NET, VELOCITY ] << JCABI <<
HIBERNATE << [ TAPESTRY_BEANVAL, JXVAL ]
#
# Common testing dependencies
#
TEST_DEPS = [ DUMBSTER, H2 ]
#
# Web interface dependencies
#
WEB_DEPS = CORE_DEPS << [ ANTLR, ANTLR_RUNTIME, COMMONS_CODEC,
COMMONS_BEANUTILS, COMMONS_COLLECTIONS ] <<
[ COMMONS_CONFIGURATION, COMMONS_VALIDATOR, CRON4J, DOM4J, GERONIMO_SPEC_JTA
] <<
[ H2, HIBERNATE, JAVAX_INJECT, JTA, LOG4J] <<
[ SAML, RHINO, SERVLET_API, STRINGTEMPLATE] <<
[ JAVAMELODY, JROBIN ] <<
[ TAPESTRY_CORE, TAPESTRY_FUNC ] <<
[ TAPESTRY_JAVADOC, TAPESTRY_JSON ] <<
[ TAPESTRY_YUI_COMPRESS ] <<
[ TAP_SECURITY, TAP_COMMON, TAP_EXCEPTION, SERVLET_JSTL, SHIRO_CORE,
SHIRO_WEB ] <<
[ TAPESTRY_UPLOAD, COMMONS_UPLOAD, TAPESTRY_BOOTSTRAP, TAPESTRY_BEANVAL ] <<
[ XML_APIS, YUI_COMPRESS ] << RESTEASY
# CHENILLEKIT
WEB_TEST_DEPS = TEST_DEPS << [ AOP, BCPROV_15, BSH, CGLIB, FINDBUGS, GUAVA,
GUICE] <<
[ COMMONS_EXEC, COMMONS_IO, COMMONS_LANG, COMMONS_LOG, JAVAX_MAIL] <<
[ JCOMMANDER, JNA, JCIP_ANN, CSSPARSER, HTMLUNIT_CORE, HTMLUNIT ] <<
[ MX4J_TOOLS, NEKOHTML, GERONIMO_JTA_SPEC, HTTP_CLIENT, HTTP_CORE, HTTP_MIME
] <<
[ EASYMOCK, ECLIPSE_JETTY_CONT, ECLIPSE_JETTY_HTTP ] <<
[ ECLIPSE_JETTY_IO, ECLIPSE_JETTY_JNDI, ECLIPSE_JETTY_PLUS, ECLIPSE_JETTY_SEC
] <<
[ ECLIPSE_JETTY_SERVER, ECLIPSE_JETTY_SERVLET, ECLIPSE_JETTY_UTIL,
ECLIPSE_JETTY_WEBAPP ] <<
[ ECLIPSE_JETTY_XML, JSON, OBJENESIS, SEL_AND_DRIVER, SEL_CORE, SEL_API ] <<
[ SEL_CHR_DRIVER, SEL_FF_DRIVER, SEL_HU_DRIVER, SEL_IE_DRIVER, SEL_IP_DRIVER
] <<
[ SEL_JAVA, SEL_JAVA_CL_DR, SEL_JAVA_TESTNG, SEL_REMOTE_DRIVER, SEL_SERVER,
SEL_SUPPORT, SAC, SNAKEYAML ] <<
[ TAPESTRY_TEST ] <<
[ XALAN_SERIALIZER, XALAN, XERCES_IMPL] <<
RESTEASY_TEST
desc "Web app project"
define "webapp" do
project.version = VERSION_NUMBER
project.group = GROUP
define "api" do
compile.with API_DEPS
test.with(API_DEPS)
package(:jar)
end
define "core" do
compile.with projects('api'), CORE_DEPS
test.with(projects('api'), CORE_DEPS, TEST_DEPS)
package(:jar)
end
define "web" do
deps = WEB_DEPS << projects('api', 'core')
compile.with(deps)
test.with(deps << WEB_TEST_DEPS)
package(:war, :id => 'webapp')
end
end