Warum hat maven nicht kopieren Sie die Eigenschaften von Dateien während des build-Prozesses?
Hab ich nichts gefunden wurde, in der Lage, mir zu helfen, lösen diese einen bestimmten Fall. Ich habe vor kurzem umgestiegen von einem plain-old-java-web-app-Projekt (die Arbeit) zu einem maven-web-Projekt. Ich bekomme die folgende exception zur Laufzeit:
java.util.MissingResourceException: Can't find bundle for base name com.myapp.config, locale en
Ich bin mit Netbeans erstellen einer JSF 2.0, Spring und Hibernate web-app. Ich habe die folgende Verzeichnisstruktur:
src\main\java\com\myapp Enthält config.Eigenschaften
src\main\resources Leertarget\myapp\WEB-INF\classes\com\myapp Enthält die kompilierten class-Dateien, ohne config.Eigenschaften
src\main\java\com\myapp Enthält config.Eigenschaften
Inspektion der war-Datei im target-Ordner zeigt keine Zeichen der properties-Datei, so dass es, als ob die Maven-build-plug-in ist nicht das kopieren über properties-Dateien. Ich weiß, es ist ein tag können Sie in der pom, aber es funktionierte nicht für mich. Der link unten wird erwähnt, dass die Ressourcen-Ordner (leer für mich) hat seine Inhalte, die während dem bauen, aber wenn das der Fall ist, wie tun Sie es aus Netbeans? Ich will nur die properties-Datei gepackt werden, die mit Krieg meine so ist es zugänglich, wenn es auf dem server bereitgestellt.
http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html
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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myapp</groupId>
<artifactId>myapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>myapp</name>
<url>http://maven.apache.org</url>
<repositories>
<repository>
<id>java.net</id>
<name>Repository hosting the Java EE 6 artifacts</name>
<url>http://download.java.net/maven/2</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-hibernate3</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.1.8</version>
</dependency>
<dependency>
<groupId>net.authorize</groupId>
<artifactId>java-anet-sdk</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.15</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
<finalName>${artifactId}</finalName>
</build>
<profiles>
<profile>
<id>endorsed</id>
<activation>
<property>
<name>sun.boot.class.path</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- javaee6 contains upgrades of APIs contained within the JDK itself.
As such these need to be placed on the bootclasspath, rather than classpath of the
compiler.
If you don't make use of these new updated API, you can delete the profile.
On non-SUN jdk, you will need to create a similar profile for your jdk, with the similar property as sun.boot.class.path in Sun's JDK.-->
<compilerArguments>
<bootclasspath>${settings.localRepository}/javax/javaee-endorsed-api/6.0/javaee-endorsed-api-6.0.jar${path.separator}${sun.boot.class.path}</bootclasspath>
</compilerArguments>
</configuration>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>6.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<properties>
<netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server>
</properties>
InformationsquelleAutor der Frage Nicholas22j | 2011-04-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist Ihr Projekt build-path konfiguriert werden, in Netbeans? Sie könnten versuchen, es zu verändern
src/main/webapp/WEB-INF/classes
. Dieser Weg, die class-Dateien kompiliert von Ihremsrc/main/java
- Ordner und alle Ressourcen, die Sie haben untersrc/main/resources
bekommen sollten, enthalten in der generierten KRIEG. Sie wären dann in der Lage, Zugriff auf Ihr config.properties-Datei, wenn Sie es unter diesrc/main/resources
Ordner.Könnten Sie auch überprüfen, die
includes
Abschnitte in Ihrem pom.xml und sicherzustellen, dass Sie nicht versehentlich ohne etwas (wenn Sie explizit sind einige Dinge, die Sie wahrscheinlich implizit ohne alles andere).InformationsquelleAutor der Antwort Dave
Maven kopiert nicht Ressourcen aus dem java-Quellcode-Baum standardmäßig, aber Sie können es tun, indem diese an Ihre pom.xml:
Stellen Sie sicher, dass Sie ausschließen, dass der java-Quellcode-Dateien.
Vom http://www.ninthavenue.com.au/how-to-change-mavens-default-resource-folder
InformationsquelleAutor der Antwort Roger Keays
Versuchen Sie Ihre config.Eigenschaften unter src\main\resources\com\myapp. Ich war in der Lage, dies zu testen auf einem lokalen Projekt. Ich bin mit Maven 3.0.2.
Erstellt ein mvn Probe-Projekt mit dem archetype-webapp:
Erstellt ein Verzeichnis unter src/main/resources/com/foo " und setzen Sie ein foo.properties Datei unter.
Ran eine bauen:
Dann, beim Blick in den resultierenden Ziel-Verzeichnis, das foo.Eigenschaften der Datei angezeigt:
Könnten Sie versuchen, diese Schritte auf Ihrem Computer. Wenn das funktioniert, dann starten Sie versuchen zu vereinfachen, Ihre POM oben, indem Sie die Dinge aus, um zu sehen, wenn es beginnt zu arbeiten. Trial and error ist kein Spaß, aber ich nur don ' T sehen nichts über das sollten Sie zu zerbrechen.
InformationsquelleAutor der Antwort squawknull