Bulunduğum hiçbir şey bu özel durumu çözmeme yardımcı oldu. Geçenlerde bir maven web projesine (eski) çalışan bir eski java web uygulaması projesinden geçtim. Ben bir JSF 2.0, Bahar ve Hazırda web uygulaması oluşturmak için NetBeans kullanıyorumNeden maven, özellik dosyalarını oluşturma işlemi sırasında kopyalamaz?
java.util.MissingResourceException: Can't find bundle for base name com.myapp.config, locale en
: Aşağıdaki çalışma zamanı özel olsun. Aşağıdaki dizin yapısı vardır: Ana \ java \
src \ com Uygulamam \ config.properties İçeren ana \ kaynaklar \
src Boş
target \ myapp \ WEB-INF \ classes \ com \ myapp \ ana \ java src config.properties
olmadan sınıf dosyaları derlenmiş İçeriğinde \ com Uygulamam \ Maven inşa etmek eklenti özellikleri dosyalarını kopyaladıktan değil sanki yani dosya özelliklerinin herhangi bir işaret göstermez config.properties
hedef klasörde WAR dosyasının
Muayene içerir. Pomanın içine yerleştirebileceğin bir etiket olduğunu biliyorum ama benim için çalışmadı. Aşağıdaki bağlantı, kaynak klasörünün (benim için boş) içeriğin yapının içinde yer aldığını, ancak durum böyleyse, bunu Netbeans'ten nasıl yaptığınızı belirtir. Ben sadece özellikleri dosya benim savaş ile paketlenmiş olmasını istiyorum, böylece sunucuya dağıtıldığında erişilebilir.
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>
Yukarıda pom.xml ekledim. Sınıf yolu etiketi düzenlemem gereken şey olabilir. Yukarıda bahsedildiği gibi, eğer orada hareket edersem, netbeans'te görünmeyeceği için, kaynaklar klasörüne bir şeyler koymak istemiyorum. – Nicholas22j
Netbeans, kaynak dosyalarında özellik dosyalarını barındırabilmeli. Http://netbeans.org/community/magazine/html/04/maven.html adresinde, kaynaklar hakkında konuşulduğu yerlerin yaklaşık yarısına inin (ya da sadece kaynaklar için sayfayı arayın ve bu konuda söylenecekleri okuyun). – squawknull
Bence netbeans makalesi bana doğru yönde işaret etti. Netbeans proje sekmesinde "Diğer Kaynaklar" adlı bir klasör var. Aynı olmayan paket yapısı altında "Diğer Kaynaklar"> "src/main/resources" için sınıf dışı dosyalar (.properties dosyaları gibi) eklemeniz gerekir. Basit bir şey olması gerektiğini biliyordum!Buna ne kadar zaman harcadığımı söyleyemem. Çok teşekkür ederim @squawknull! Harikasın. – Nicholas22j