Zczytanie properties z wara

0

Witam
używając plugina mavena do budowy wara dodałem sobie katalog w którym mam zwykłe pliki properties

 <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
             
               <webResources>
	            <resource>
	              <!-- this is relative to the pom.xml directory -->
	              <directory>src/main/java/project/demo/config</directory>
	            </resource>
	          </webResources>

               <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
            
         </plugin>

Teraz mam pytanko jak w kodzie zczytać te properties ??
potrzebuje coś takiego :

Properties prop = new Properties();

BufferedReader reader = new BufferedReader();?????
prop.load(reader);

I Właśnie się zastanawiam ponieważ funkcja Properties.load() potrzebuje jako argumentu obiektu Reader tylko jak się odnieść do tego pliku properties z wara ?

(jak przeglądam plik war to mam tam dodany ten pllik properties )

0

Na poczatek proponowalbym ustawic katalog docelowy "WEB-INF". Pliki w tym katalogu sa dostepne dla serwera, ale niewidoczne dla klientow (w przeciwienstwie do katalogu glownego WAR'a).

    //...    
    <webResources>
        <resource>
        <directory>src/main/java/project/demo/config</directory>
        <targetPath>WEB-INF</targetPath>
    //...

Teraz wystarczy uzyc kontekst serwletu:

	//...
	Properties p = new Properties();
	p.load(getServletContext().getResourceAsStream("/WEB-INF/some.properties"));
	//...
0

Dziękuję serdecznie o to mi dokładnie chodziło.

Z warem sobie poradzilem teraz muszę to samo zrobić z jarem czyli zwykły projekt mavena dodałem i w pom:

   <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.2</version>
          <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
           
             <includes>
                <include>/src/main/java/common/common/i18n</include>
             </includes>
              
            </configuration>
          </execution>
        </executions>

      </plugin>
    </plugins>
  </build>

Ale nie wiem czemu nie chce działać potrzebuje dodać tak jak przedtem do jara w katalogu classess zwykły plik tekstowy :/
niestety nie wiem dlaczego to nie działa jak usune linie <include>/src/main/java/common/common/i18n</include> to wtedy mam katalog classess w jarze ....

0

Witam doszukałem się postu : Maven jak dodać zasoby do generowanego pliku jar

i utworzyłem sobie w pom.xml :

  <build>
		<plugins>
			<plugin>
	                <artifactId>maven-assembly-plugin</artifactId>
	                <executions>
	                    <execution>
	                        <id>make-assembly</id>
	                        <phase>package</phase>
	                        <goals>
	                            <goal>assembly</goal>
	                        </goals>
	                        <configuration>
	 
	                            <descriptors>
	                                <descriptor>release.xml</descriptor>
	                            </descriptors>
	                       <!--   <archive>
	                                <manifest>
	                                    <mainClass>tutaj main klasa jak jest potrzebna</mainClass>
	                                </manifest>
	                            </archive>  -->
	                            <finalName>${project.artifactId}</finalName>
	                        </configuration>
	 
	                    </execution>
	                </executions>
	            </plugin>
		</plugins>
	</build>

oraz release.xml:

 
<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
 
    <id>1.0</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
   
    <dependencySets>
        <dependencySet>
            <unpack>true</unpack>
            <scope>compile</scope>
        </dependencySet>
    </dependencySets>
 	 <fileSets>
        <fileSet>
            <directory>src/main/java/common/common/i18n/</directory>
            <outputDirectory>common/common/i18n/</outputDirectory>
        </fileSet>
 	 </fileSets>  
</assembly>

i ok wszystko w i18n jest dołączone tam gdzie chcę tylko że w jarze oprucz katalogu META-INF oraz common mam jeszcze inne skompilowane i dołączone katalogi z dependencies czyli jak otwieram plik common1.0.jar to mam także katalog VAADIN,
org , javax... czyli załączone rzeczy z dependencies ...
a potrzebuje tam tylko META-INF oraz common czyli tak jak jest przy standardowym kompilowaniu

1 użytkowników online, w tym zalogowanych: 0, gości: 1