2009-11-13 18 views
7

Mam nadzieję, że ktoś może mi pomóc z tym dziwnym. Próbuję uruchomić wtyczkę webstart, ale wydaje się, że nie jest w stanie znaleźć głównej klasy w produkowanym słoiku. Pom jest tak proste, jak to tylko możliwe, a test klasy istnieje i jest kompilowany i umieszczany w słoiku. Czy ktoś może wskazać mi właściwy kierunek?Wtyczka webstartu Maven nie znajduje zależności

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <name>Desktop Components</name> 
    <groupId>com.test</groupId> 
    <artifactId>test</artifactId> 
    <version>1.0</version> 
    <packaging>jar</packaging> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo.webstart</groupId> 
     <artifactId>webstart-maven-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>process-resources</phase> 
      <goals> 
       <goal>jnlp-download-servlet</goal> 
      </goals> 
      </execution> 
     </executions> 

     <configuration> 
      <jnlpFiles> 
      <jnlpFile> 
       <jarResources> 
       <jarResource> 
        <groupId>com.test</groupId> 
        <artifactId>test</artifactId> 
        <version>1.0</version> 
        <mainClass>Test</mainClass> 
       </jarResource> 
       </jarResources> 
      </jnlpFile> 
      </jnlpFiles> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Oto ślad Maven:

C:\TEMP\webstart-test>mvn webstart:jnlp –e 
+ Error stacktraces are turned on. 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Desktop Components 
[INFO] task-segment: [webstart:jnlp] (aggregator-style) 
[INFO] ------------------------------------------------------------------------ 
[INFO] Preparing webstart:jnlp 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Desktop Components 
[INFO] ------------------------------------------------------------------------ 
[INFO] [resources:resources {execution: default-resources}] 
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! 
[INFO] skip non existing resourceDirectory C:\TEMP\webstart-test\src\main\resources 
[INFO] [webstart:jnlp-download-servlet {execution: default}] 
[INFO] No templateFilename found for launch2.jnlp. Will use the default template. 
[INFO] No resources found in C:\TEMP\webstart-test\src\main\jnlp\resources 
Downloading: http://repo1.maven.org/maven2/com/test/test/1.0/test-1.0.pom 
[INFO] Unable to find resource 'com.test:test:pom:1.0' in repository central (http://repo1.maven.org/maven2) 
No template specified Using default one. 

***** Webstart JAR URL: jar:file:/C:/apache-maven-2.2.1/repo/org/codehaus/mojo/webstart/webstart-maven-plugin/1.0-alpha-2/webstart-maven-plugin-1.0-alpha-2.jar! 
/
[INFO] [compiler:compile {execution: default-compile}] 
[INFO] Nothing to compile - all classes are up to date 
[INFO] [resources:testResources {execution: default-testResources}] 
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! 
[INFO] skip non existing resourceDirectory C:\TEMP\webstart-test\src\test\resources 
[INFO] [compiler:testCompile {execution: default-testCompile}] 
[INFO] No sources to compile 
[INFO] [surefire:test {execution: default-test}] 
[INFO] No tests to run. 
[INFO] [jar:jar {execution: default-jar}] 
[INFO] Building jar: C:\TEMP\webstart-test\target\test-1.0.jar 
[INFO] [webstart:jnlp {execution: default-cli}] 
[INFO] No resources found in C:\TEMP\webstart-test\src\main\jnlp\resources 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Failure to run the plugin: 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 

Ślad następuje

org.apache.maven.lifecycle.LifecycleExecutionException: Failure to run the plugin: 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
     at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:592) 
     at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
     at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
     at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
     at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 

Teraz spowodowane przez śladu

Caused by: org.apache.maven.plugin.MojoExecutionException: Failure to run the plugin: 
     at org.codehaus.mojo.webstart.AbstractJnlpMojo.execute(AbstractJnlpMojo.java:289) 
     at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
     ... 17 more 

Caused by: java.lang.NullPointerException 
     at org.codehaus.mojo.webstart.AbstractJnlpMojo.execute(AbstractJnlpMojo.java:214) 
     ... 19 more 

a ostateczna śladu Maven

[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 9 seconds 
[INFO] Finished at: Fri Nov 13 11:16:54 GMT 2009 
[INFO] Final Memory: 12M/22M 
[INFO] ------------------------------------------------------------------------ 
+0

Proszę, poświęć trochę czasu na sformatowanie pytania, które jest obecnie nieczytelne i wyjaśnienie ** tego, co próbujesz osiągnąć **. Wtyczka webstart ma wiele celów, więc "próbuję uruchomić webspart pluign" nie jest jasna, nawet jeśli widzę, do którego celu się odwołujesz. Problem polega na tym, że mieszasz koncepcje, więc nie wiem, co próbujesz zrobić. Jak już powiedziałem, poświęć trochę czasu na wyjaśnienie i zadawanie pytań w inteligentny sposób (http://catb.org/~esr/faqs/smart-questions.html). –

Odpowiedz

-1

Nie sądzę, że są to twoje zależności, które nie zostały znalezione, ale raczej niektóre pliki w C: \ TEMP \ webstart-test \ src \ main \ jnlp \ resources, takie jak szablon Velocity dla pliku jnlp może?

+0

@napoleon: używany jest domyślny szablon prędkości. – amirouche

1

Jest problem z mainClass dla JNLP

Trzeba coś takiego

<configuration> 
    <jnlp> 
     <mainClass>com.test.Test</mainClass> 
    </jnlp> 
<configuration> 
0

Jestem pewien, że to już nie jest to problem dla ciebie, gdy pytanie jest letnia. Jednak ze względu na kompletność ...

Edytowałem pytanie, aby było czytelne. Pokazuje nam to błąd w linii 214 AbstractJnlpMojo. Looking at the latest version source code w linii 214 (podstawowa przyczyna powyżej), widzimy, ponieważ dzieje się tak dlatego, że nie określono głównej metody dla pliku JNLP.

JNLP nie potrzebuje głównej klasy metody określonej w zasobach jar. Potrzebuje go również w tagu JNLP, tak jak to.

<configuration> 
     <jnlp> 
     <mainClass>com.test.Test</mainClass> 
     </jnlp> 
    </configuration> 

Jako kod został zmieniony, jeśli zrobił to dzisiaj, co można uzyskać następujący wyjątek (nieco bardziej czytelny):

org.apache.maven.plugin.MojoExecutionException: 
    didn't find artifact with main class: null. Did you specify it? 
0

Dla rozwiązania tego problemu:

nie znaleziono artefaktu z główną klasą: null. Czy to określiłeś?

miałem do tworzenia projektu maven wielomodułowego następująco:

  • bazowy projekt
    • main-app
    • WebStart

Następnie wewnątrz webstart "sp plik om Zawarłem main-app jako zależność. Na koniec uruchom mvn webstart:jnlp z katalogu webstart.