Skip to content

Instantly share code, notes, and snippets.

@mojavelinux
Created April 11, 2012 21:59
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mojavelinux/2363038 to your computer and use it in GitHub Desktop.
Save mojavelinux/2363038 to your computer and use it in GitHub Desktop.
Using Arquillian without Maven

Using Arquillian without Maven

This project is the end result of the Getting Started Guide, except that the Eclipse project files have been removed and the Maven plugin for copying the dependencies for each container adapter has been added to the respective profile. We'll be using this project merely as a script to download the dependencies from the Maven repository and stuff them into a directory for the purpose of creating a User Library in the IDE.

Dependency export plugin

We add a plugin execution and configuration for the Maven dependency copy plugin to instruct Maven to copy the dependencies a folder in the build directory.

Here's the plugin definition that's added inside the main build element that gets inherited by all profiles:

<plugin>    
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution> 
            <id>copy-dependencies</id>
            <phase>validate</phase>
            <goals>     
                <goal>copy-dependencies</goal>
            </goals>    
            <configuration>
                <outputDirectory>
                    ${project.build.directory}/dependencies/${project.activeProfiles[0].id}
                </outputDirectory>
                <excludeScope>provided</excludeScope>
                <excludeArtifactIds>junit</excludeArtifactIds>
            </configuration>
        </execution>
    </executions>
</plugin>   

Commands to export the dependencies

The dependency copy plugin is configured to run during the validate phase, which is the first phase in the Maven lifecycle. We can run that phase and activate each profile in turn to export the dependencies.

mvn validate -Parquillian-weld-ee-embedded
mvn validate -Parquillian-glassfish-embedded
mvn validate -Parquillian-jbossas-managed
mvn validate -Parquillian-tomcat-managed
mvn validate -Parquillian-tomcat-remote

You can then use this folders to create a User Library in your IDE to easily add the necessary JAR files per container adapter without having to use Maven.

Contents of the folders created per profile

ls target/dependencies/arquillian-weld-ee-embedded

arquillian-config-api-1.0.0.Final.jar
arquillian-config-impl-base-1.0.0.Final.jar
arquillian-container-impl-base-1.0.0.Final.jar
arquillian-container-spi-1.0.0.Final.jar
arquillian-container-test-api-1.0.0.Final.jar
arquillian-container-test-impl-base-1.0.0.Final.jar
arquillian-container-test-spi-1.0.0.Final.jar
arquillian-core-api-1.0.0.Final.jar
arquillian-core-impl-base-1.0.0.Final.jar
arquillian-core-spi-1.0.0.Final.jar
arquillian-junit-container-1.0.0.Final.jar
arquillian-junit-core-1.0.0.Final.jar
arquillian-test-api-1.0.0.Final.jar
arquillian-testenricher-cdi-1.0.0.Final.jar
arquillian-test-impl-base-1.0.0.Final.jar
arquillian-test-spi-1.0.0.Final.jar
arquillian-weld-ee-embedded-1.1-1.0.0.CR2.jar
cal10n-api-0.7.2.jar
guava-r06.jar
javassist-3.14.0-GA.jar
jboss-interceptor-core-2.0.0.CR1.jar
jboss-interceptor-spi-2.0.0.CR1.jar
shrinkwrap-api-1.0.0.jar
shrinkwrap-descriptors-api-base-2.0.0-alpha-2.jar
shrinkwrap-descriptors-spi-2.0.0-alpha-2.jar
shrinkwrap-impl-base-1.0.0.jar
shrinkwrap-spi-1.0.0.jar
slf4j-api-1.6.1.jar
slf4j-ext-1.6.1.jar
slf4j-simple-1.6.4.jar
weld-api-1.1.Final.jar
weld-build-config-1.1.5.Final.jar
weld-core-1.1.5.Final.jar
weld-spi-1.1.Final.jar

ls target/dependencies/arquillian-glassfish-embedded

arquillian-config-api-1.0.0.Final.jar
arquillian-config-impl-base-1.0.0.Final.jar
arquillian-container-impl-base-1.0.0.Final.jar
arquillian-container-spi-1.0.0.Final.jar
arquillian-container-test-api-1.0.0.Final.jar
arquillian-container-test-impl-base-1.0.0.Final.jar
arquillian-container-test-spi-1.0.0.Final.jar
arquillian-core-api-1.0.0.Final.jar
arquillian-core-impl-base-1.0.0.Final.jar
arquillian-core-spi-1.0.0.Final.jar
arquillian-glassfish-embedded-3.1-1.0.0.CR3.jar
arquillian-junit-container-1.0.0.Final.jar
arquillian-junit-core-1.0.0.Final.jar
arquillian-protocol-servlet-1.0.0.Final.jar
arquillian-test-api-1.0.0.Final.jar
arquillian-testenricher-cdi-1.0.0.Final.jar
arquillian-testenricher-ejb-1.0.0.Final.jar
arquillian-testenricher-initialcontext-1.0.0.Final.jar
arquillian-testenricher-resource-1.0.0.Final.jar
arquillian-test-impl-base-1.0.0.Final.jar
arquillian-test-spi-1.0.0.Final.jar
glassfish-embedded-all-3.1.2.jar
shrinkwrap-api-1.0.0.jar
shrinkwrap-descriptors-api-base-2.0.0-alpha-2.jar
shrinkwrap-descriptors-spi-2.0.0-alpha-2.jar
shrinkwrap-impl-base-1.0.0.jar
shrinkwrap-spi-1.0.0.jar

ls target/dependencies/arquillian-jbossas-managed

arquillian-config-api-1.0.0.Final.jar
arquillian-config-impl-base-1.0.0.Final.jar
arquillian-container-impl-base-1.0.0.Final.jar
arquillian-container-osgi-1.0.0.CR4.jar
arquillian-container-spi-1.0.0.Final.jar
arquillian-container-test-api-1.0.0.Final.jar
arquillian-container-test-impl-base-1.0.0.Final.jar
arquillian-container-test-spi-1.0.0.Final.jar
arquillian-core-api-1.0.0.Final.jar
arquillian-core-impl-base-1.0.0.Final.jar
arquillian-core-spi-1.0.0.Final.jar
arquillian-junit-container-1.0.0.Final.jar
arquillian-junit-core-1.0.0.Final.jar
arquillian-protocol-jmx-1.0.0.Final.jar
arquillian-test-api-1.0.0.Final.jar
arquillian-testenricher-cdi-1.0.0.Final.jar
arquillian-testenricher-ejb-1.0.0.Final.jar
arquillian-testenricher-initialcontext-1.0.0.Final.jar
arquillian-testenricher-osgi-1.0.0.CR4.jar
arquillian-testenricher-resource-1.0.0.Final.jar
arquillian-test-impl-base-1.0.0.Final.jar
arquillian-test-spi-1.0.0.Final.jar
hibernate-validator-4.2.0.Final.jar
httpserver-1.0.0.Beta2.jar
jandex-1.0.3.Final.jar
jbosgi-deployment-1.0.10.jar
jbosgi-framework-core-1.0.0.CR8.jar
jbosgi-resolver-api-1.0.9.jar
jbosgi-resolver-felix-1.0.9.jar
jbosgi-resolver-metadata-1.0.9.jar
jbosgi-resolver-spi-1.0.9.jar
jbosgi-spi-1.0.28.jar
jbosgi-vfs-1.0.5.jar
jbosgi-vfs30-1.0.6.jar
jboss-as-arquillian-common-7.0.2.Final.jar
jboss-as-arquillian-container-managed-7.0.2.Final.jar
jboss-as-arquillian-protocol-jmx-7.0.2.Final.jar
jboss-as-arquillian-testenricher-msc-7.0.2.Final.jar
jboss-as-build-config-7.0.2.Final.jar
jboss-as-console-1.0.0.Beta17-resources.jar
jboss-as-controller-7.0.2.Final.jar
jboss-as-controller-client-7.0.2.Final.jar
jboss-as-deployment-repository-7.0.2.Final.jar
jboss-as-domain-http-api-7.0.2.Final.jar
jboss-as-domain-management-7.0.2.Final.jar
jboss-as-ee-7.0.2.Final.jar
jboss-as-embedded-7.0.2.Final.jar
jboss-as-jmx-7.0.2.Final.jar
jboss-as-naming-7.0.2.Final.jar
jboss-as-network-7.0.2.Final.jar
jboss-as-osgi-service-7.0.2.Final.jar
jboss-as-platform-mbean-7.0.2.Final.jar
jboss-as-process-controller-7.0.2.Final.jar
jboss-as-protocol-7.0.2.Final.jar
jboss-as-remoting-7.0.2.Final.jar
jboss-as-server-7.0.2.Final.jar
jboss-as-threads-7.0.2.Final.jar
jboss-common-core-2.2.17.GA.jar
jboss-dmr-1.0.0.Final.jar
jboss-interceptor-spi-2.0.0.Alpha3.jar
jboss-invocation-1.1.0.Final.jar
jboss-logging-3.0.0.GA.jar
jboss-logmanager-1.2.0.GA.jar
jboss-logmanager-log4j-1.0.0.GA.jar
jboss-marshalling-1.3.0.GA.jar
jboss-metadata-common-7.0.0.Beta11.jar
jboss-metadata-ear-7.0.0.Beta11.jar
jboss-modules-1.0.2.GA.jar
jboss-msc-1.0.1.GA.jar
jboss-remoting-3.2.0.Beta2.jar
jboss-sasl-1.0.0.Beta2.jar
jboss-stdio-1.0.0.GA.jar
jboss-threads-2.0.0.GA.jar
jboss-vfs-3.0.1.GA.jar
org.osgi.compendium-4.2.0.jar
org.osgi.core-4.2.0.jar
shrinkwrap-api-1.0.0.jar
shrinkwrap-descriptors-api-base-2.0.0-alpha-2.jar
shrinkwrap-descriptors-spi-2.0.0-alpha-2.jar
shrinkwrap-impl-base-1.0.0.jar
shrinkwrap-resolver-api-1.0.0-beta-6.jar
shrinkwrap-resolver-api-maven-1.0.0-beta-6.jar
shrinkwrap-resolver-impl-maven-1.0.0-beta-6.jar
shrinkwrap-spi-1.0.0.jar
slf4j-api-1.6.1.jar
staxmapper-1.0.0.Final.jar
xnio-api-3.0.0.Beta2.jar
xnio-nio-3.0.0.Beta3.jar

ls target/dependencies/arquillian-tomcat-managed

arquillian-config-api-1.0.0.Final.jar
arquillian-config-impl-base-1.0.0.Final.jar
arquillian-container-impl-base-1.0.0.Final.jar
arquillian-container-spi-1.0.0.Final.jar
arquillian-container-test-api-1.0.0.Final.jar
arquillian-container-test-impl-base-1.0.0.Final.jar
arquillian-container-test-spi-1.0.0.Final.jar
arquillian-core-api-1.0.0.Final.jar
arquillian-core-impl-base-1.0.0.Final.jar
arquillian-core-spi-1.0.0.Final.jar
arquillian-junit-container-1.0.0.Final.jar
arquillian-junit-core-1.0.0.Final.jar
arquillian-protocol-servlet-1.0.0.Final.jar
arquillian-test-api-1.0.0.Final.jar
arquillian-testenricher-cdi-1.0.0.Final.jar
arquillian-testenricher-initialcontext-1.0.0.Final.jar
arquillian-testenricher-resource-1.0.0.Final.jar
arquillian-test-impl-base-1.0.0.Final.jar
arquillian-test-spi-1.0.0.Final.jar
arquillian-tomcat-common-1.0.0.CR3.jar
arquillian-tomcat-managed-6-1.0.0.CR3.jar
commons-codec-1.5.jar
shrinkwrap-api-1.0.0.jar
shrinkwrap-descriptors-api-base-2.0.0-alpha-2.jar
shrinkwrap-descriptors-spi-2.0.0-alpha-2.jar
shrinkwrap-impl-base-1.0.0.jar
shrinkwrap-spi-1.0.0.jar

ls target/dependencies/arquillian-tomcat-remote

arquillian-config-api-1.0.0.Final.jar
arquillian-config-impl-base-1.0.0.Final.jar
arquillian-container-impl-base-1.0.0.Final.jar
arquillian-container-spi-1.0.0.Final.jar
arquillian-container-test-api-1.0.0.Final.jar
arquillian-container-test-impl-base-1.0.0.Final.jar
arquillian-container-test-spi-1.0.0.Final.jar
arquillian-core-api-1.0.0.Final.jar
arquillian-core-impl-base-1.0.0.Final.jar
arquillian-core-spi-1.0.0.Final.jar
arquillian-junit-container-1.0.0.Final.jar
arquillian-junit-core-1.0.0.Final.jar
arquillian-protocol-servlet-1.0.0.Final.jar
arquillian-test-api-1.0.0.Final.jar
arquillian-testenricher-cdi-1.0.0.Final.jar
arquillian-testenricher-initialcontext-1.0.0.Final.jar
arquillian-testenricher-resource-1.0.0.Final.jar
arquillian-test-impl-base-1.0.0.Final.jar
arquillian-test-spi-1.0.0.Final.jar
arquillian-tomcat-common-1.0.0.CR3.jar
arquillian-tomcat-remote-6-1.0.0.CR3.jar
commons-codec-1.5.jar
shrinkwrap-api-1.0.0.jar
shrinkwrap-descriptors-api-base-2.0.0-alpha-2.jar
shrinkwrap-descriptors-spi-2.0.0-alpha-2.jar
shrinkwrap-impl-base-1.0.0.jar
shrinkwrap-spi-1.0.0.jar
@teicher
Copy link

teicher commented Apr 20, 2013

Thanks a lot for this effort !
Tu upgrade to arquillian 1.0.3, is it sufficient to change pom.xml line 23
<dependency> <groupId>org.jboss.arquillian</groupId> <artifactId>arquillian-bom</artifactId> <version>1.0.3.Final</version> <scope>import</scope> <type>pom</type> </dependency>
or do I need to upgrade more arquillian components / dependencies ?

Please see also:
https://issues.jboss.org/browse/ARQ-1379#comment-12768953

Cheers, Tom.

@teicher
Copy link

teicher commented Apr 20, 2013

And JBoss version must be updated/adjusted/selected on pom.xml line 138
(NoSuchMethodError for remoting3 otherwise)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment