Maven Assembly mit lib-Verzeichnis und Resource Verzeichnis

  • Themenstarter Themenstarter Gelöschtes Mitglied 16929
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 16929

Gast
Hi, ich versuche jetzt schon seit einiger Zeit herauszufinden wie man ein richtiges assembly mit Maven hinbekommt.

Mein Ziel:
  • Ausführbares JarFile
  • Files aus dem Ordner "src/main/resource" auch im Jar
  • Java 1.7
  • Classpath im Jar richtig gesetzt
  • Alle benötigten Libraries im Ordner "lib/"

Bisher arbeite ich mit assembly:single bekomme es aber nicht hin, dass ich jar und libs sauber trenne. Außerdem wird "src/main/resource" nicht hinzugefügt und bei ein eclipse:eclipse bekomm ich es nicht als source folder dazu was etwas mühsam ist.

Ich bin für jede Hilfe dankbar.
Liebe Grüße
Hemeroc
 
Zuletzt bearbeitet von einem Moderator:
Maven Infos:
Code:
C:\Users\Hemeroc>mvn -v
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
Maven home: C:\Program Files\maven\bin\..
Java version: 1.7.0, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

Pom:
[XML]
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>unknown</groupId>
<artifactId>unknown</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>unknown</name>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<repositories>

<repository>
<id>repo2_maven_org</id>
<url>http://repo2.maven.org/maven2</url>
</repository>

</repositories>

<dependencies>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.8</version>
</dependency>

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>


<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>

<dependency>
<groupId>com.miglayout</groupId>
<artifactId>miglayout-core</artifactId>
<version>4.2</version>
</dependency>

<dependency>
<groupId>com.miglayout</groupId>
<artifactId>miglayout-swing</artifactId>
<version>4.2</version>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>0.10.8</version>
</dependency>

<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.1</version>
</dependency>

</dependencies>

<!--
<plugins>

<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<executions>
<execution>
<id>default-compile</id>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</execution>
<execution>
<id>default-testCompile</id>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<index>true</index>
<manifest>
<mainClass>unknown.main.Main</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<mode>development</mode>
</manifestEntries>
</archive>
</configuration>
</plugin>

</plugins>
-->

</project>
[/XML]
 
eclipse:eclipse ist verlatet, hole dir das aktuelle m2e Plugin (maven integration for eclipse im Marketplace).

Deine Repository Konfig ist im besten Falle redundant, im schlimmsten Falsch, solltest du weglassen.

Sehe nciht wo du das assembly plugin einbindest/konfigurierst.
Sieh dir mal die vordefinierten Assembly Descriptoren an, wirst deinen eigenen schreiben müssen: Predefined Assembly Descriptors
 
Wie kommst du drauf das eclipse:eclipse veraltet ist?
Aktuelle Version ist 2.9, Release Date: 2012-02-14

Das repo hatte ich drin weil er ausnahmslos von
Code:
http://repo1.maven.org/maven2
gezogen hat allerdings war guice (damals noch in der dep. liste) auf repo1 nicht aktuell auf repo2 allerdings schon.

Ich hab die config für assembly:single ned drin weil ich da einiges probiert hab und nichts davon geklappt hat. Gut zu wissen das es keinen standard descriptor dafür gibt.
Ich dachte mir nur es gibt vielleicht auch irgendwo einen der das tut was ich will man muss ja das Rad nicht permanent neu erfinden.

Liebe Grüße
Hemeroc
 

Neue Themen


Zurück
Oben