2011-09-27 15 views
6

Próbuję użyć log4j w projekcie, który wykonuję z wtyczką exec-maven. Próbowałem umieszczenie pliku w następujących lokalizacjach:Gdzie należy znaleźć log4j.properties podczas korzystania z Maven Exec Plugin?

$PROJECT_HOME 
$PROJECT_HOME/src/main/resources 
$PROJECT_HOME/target 
$PROJECT_HOME/target/classes 

dla wszystkich lokalizacji w pliku, otrzymuję następujący komunikat, gdy wykonywanie kodu:

log4j:WARN No appenders could be found for logger (mypacakge.MyClass). 
log4j:WARN Please initialize the log4j system properly. 

Gdzie należy plik log4j.properties znajdować się ?


Exec-maven-plugin config:

... 
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.2</version> 
    <configuration> 
     <mainClass>mypackage.Main</mainClass> 
    </configuration> 
</plugin> 
... 
+0

Czy możesz dołączyć konfigurację 'exec-maven-plugin'. – amra

+0

Z którą fazą wykonawczą jest związana wtyczka exec? – MaDa

Odpowiedz

0

nie jestem pewien, że to jest właściwa droga (bo nie znam tej wtyczki), ale można użyć konfiguracji plugin, aby określić ścieżkę klas VM właściwej lokalizacji pliku:

<configuration> 
    <executable>maven</executable> 
    <!-- optional --> 
    <workingDirectory>/tmp</workingDirectory> 
    <arguments> 
     <argument>-classpath</argument> 
     <argument>/path/to/dirthatcontainslog4J</argument> 
     ... 
    </arguments> 
</configuration> 

Jaki jest cel używania takiej wtyczki? Jeśli jest to, aby przetestować aplikację, powinieneś użyć maven zależność plugin: http://www.sonatype.com/books/mvnex-book/reference/customizing-sect-custom-packaged.html

można znaleźć więcej informacji tutaj: maven jar-with-dependencies log4j

How can I create an executable JAR with dependencies using Maven?

Pozdrowienia

1

You mają dwie możliwości:

  1. Umieść plik właściwości pod

./src/main/resources/log4j.xml

  1. Można określić go z linii poleceń:

$ mvn skompilować exec: java -Dexec.classpathScope = kompilacji -Dexec.mainClass = com.lei.java.sample.Test -Dlog4j.configuration = file: ./ log4j.xml

0

W rzeczywistości log4j udostępnił opcję wiersza polecenia dla ręcznego lokalizowania pliku konfiguracyjnego. Jednak jest ona wykorzystywana do samego java polecenia, i można go używać w Maven budynku przez -Dexec.args opcją przekazać opcje java bezpośrednio:

$ mvn -Dexec.args="-Dlog4j.configurationFile='./log4j2.xml' -classpath /previously/configured/path" org.codehaus.mojo:exec-maven-plugin:1.2.1:exec 

Poza tym argumenty exec.args można także zapisać uporczywie w <arguments> sekcji Mojo, as said in document:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.6.0</version> 
    <executions> 
    ... 
    </executions> 
    <configuration> 
    <executable>maven</executable> 
    <arguments> 
     <argument>-Dlog4j.configurationFile="./log4j2.xml"</argument> 
     ... 
    </arguments> 
    </configuration> 
</plugin> 
Powiązane problemy