2010-04-06 13 views
6

Chciałbym dodać dodatkową ścieżkę klasy do exec-maven-plugin.
Oprócz% ścieżki klasy, chciałbym dodać dodatkową ścieżkę do katalogu zawierającego zasoby (/ Users/kornp/resources). Obecnie mój pom wygląda następująco:Dodaj dodatkową ścieżkę do exec-maven-plugin

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.1.1</version> 
    <configuration> 
    <executable>java</executable> 
    <classpathScope>runtime</classpathScope> 
    <arguments> 
     <argument>%classpath:/Users/kornp/resources</argument> 
     <argument>org.drrabbit.maventest.App</argument> 
    </arguments> 
    </configuration> 
</plugin> 

Jak należy skonfigurować to?

Odpowiedz

2

Czy próbowałeś użyć parametru commandlineArgs (jak wspomniano w exec example)?

+0

Tak zrobiłem, ale potem % classpath już nie działa. –

+0

@Kornp Arf, przepraszam, to nie było moje zrozumienie przykładu. Nie wiem, czy jest inny sposób. Czy ręczna konfiguracja ścieżki klas jest opcją? –

+0

Tak, jest to opcja, ale w grę wchodzi sporo plików JAR. To będzie żmudna praca. Dzięki za sugestię. –

0

Dobra,

I dostosowany wtyczki tak, że argumenty wiersza poleceń może być w pełni określony (w tym parametrze% CLASSPATH)

+0

Jeśli chcesz skopiować wynik do odpowiedzi, możesz zdobyć 3 głosy w górę na znaczek samo ucznia. – Martin

+0

Martin, co masz na myśli mówiąc, skopiuj wynik do odpowiedzi? –

+0

@KornP, gdzie jest twoja zaadaptowana wtyczka? – Gili

1

Choć wygląda to mniej eleganckie, ale przejście na antrun wtyczki powinien działa:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>runSomething</id> 
      <phase>package</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <target> 
        <property name="runtime_classpath" refid="maven.runtime.classpath"/> 

        <java classname="org.drrabbit.maventest.App" 
          fork="true" 
          failonerror="true" 
          maxmemory="512m"> 

         <classpath> 
          <pathelement path="${project.build.directory}/some/extra/resources" /> 
          <pathelement path="${runtime_classpath}" /> 
         </classpath> 
        </java> 
       </target> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Jednak nie wydaje się dobrym pomysłem, aby dodatkowe zasoby zostały umieszczone poza projektem, co sugeruje operacja. Powinieneś rozważyć umieszczenie tego jako części projektu, lub uczynienie go słojem i wdrożenie do maven repo, abyś mógł umieścić go jako zależność od wtyczki.

5

Mam niektóre pliki konfiguracyjne w określonym katalogu poza folderem źródłowym. Tak zdefiniowałem dodatkowe zasoby do mojego pliku pom.xml.

moja próbka jest struktura katalogów:

+ src 
+ conf 
    - app.properties 
    - log4j.xml 
- pom.xml 

moim pom.xml:

<build> 
    <resources> 
    <resource> 
     <directory>conf</directory> 
    </resource> 
    <resource> 
     <directory>src/main/resources</directory> 
    </resource> 
    </resources> 

    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.2.1</version> 
     <configuration> 
     <executable>java</executable> 
     <mainClass>com.mycompany.MyMainClass</mainClass> 
     </configuration> 
    </plugin> 
    </plugins> 
<build> 

Teraz możemy uruchomić program:

mvn clean compile exec:java 
+2

Mam problem z uruchomieniem tego w przypadku, gdy moja główna klasa pochodzi z zależności, a nie z samego projektu. – kutschkem

+0

Dziękuję bardzo! To naprawdę pomoże! – Yuanhang

Powiązane problemy