2009-11-13 20 views
7

Esperando que alguien me pueda ayudar con este extraño. Estoy intentando ejecutar el complemento webstart, pero no parece poder encontrar la clase principal dentro del jar que se está produciendo. El pom es tan simple como se puede obtener, y la prueba de clase existe, y se está compilando y colocando en el jar. ¿Puede alguien indicarme el camino correcto?El plugin Maven webstart no encuentra dependencias

<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> 

Aquí es la traza 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 

La traza sigue

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) 

Ahora el rastro Causada por

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 

y la traza definitiva 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

Por favor, tómese su tiempo para formatear su pregunta que actualmente no se puede leer y para explicar ** lo que está tratando de lograr **. El complemento webstart tiene muchos objetivos, por lo que "estoy tratando de ejecutar el plugin webstart" no está claro, incluso si puedo ver qué objetivo está invocando. El problema es que estás mezclando conceptos, así que no sé lo que intentas hacer. Como dije, tómese un tiempo para aclarar y hacer su pregunta de una manera inteligente (http://catb.org/~esr/faqs/smart-questions.html). –

Respuesta

-1

No creo que sean sus dependencias las que no se encuentran, sino más bien algunos archivos en C: \ TEMP \ webstart-test \ src \ main \ jnlp \ resources, como la plantilla Velocity para su archivo jnlp ¿tal vez?

+0

@napoleon: se usa la plantilla predeterminada de Velocity. – amirouche

1

Este es un problema con MainClass para JNLP

Es necesario algo como esto

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

Estoy seguro que esto ya no es un problema para usted, ya que la cuestión es de un año de edad. Sin embargo, para completar ...

He editado la pregunta para que sea legible. Esto nos muestra que el error está en la línea 214 de AbstractJnlpMojo. Looking at the latest version source code en la línea 214 (la causa raíz anterior), podemos ver que esto se debe a que no ha especificado el método principal para el archivo JNLP.

El JNLP no necesita la clase de método principal que se acaba de especificar en los recursos jar. También lo necesita en la etiqueta JNLP, así.

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

A medida que el código ha cambiado, si se hizo esto hoy en día, se llega a la siguiente excepción (un poco más legible):

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

Para resolver este problema:

no encontró artefacto con la clase principal: nulo. ¿Lo has especificado?

tuve que crear un proyecto Maven multi-módulo de la siguiente manera:

  • -proyecto de la base
    • principal aplicación
    • WebStart

Entonces dentro de webstart 'sp om archivo Incluí main-app como una dependencia. Finalmente, ejecute mvn webstart:jnlp desde el directorio webstart.