以下是一些可供参考的内容.我(非常简单)的项目应该是完全可重现的:
包结构(来自树):
├── pom.xml ├── readme.txt ├── SwingWebstartMaven-Client │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ └── shaunabram │ │ │ │ └── swingwebstartmaven │ │ │ │ ├── HelloWorldSwing.class │ │ │ │ └── HelloWorldSwing.java │ │ │ ├── jnlp │ │ │ │ └── template.vm │ │ │ └── resources │ │ └── test │ └── target │ ├── classes │ │ └── com │ │ └── shaunabram │ │ └── swingwebstartmaven │ │ └── HelloWorldSwing.class │ ├── jnlp │ │ ├── launch.jnlp │ │ ├── lib │ │ │ └── SwingWebstartMaven-Client-1.0.jar │ │ └── SwingWebstartMavenExample-KeyStore │ ├── maven-archiver │ │ └── pom.properties │ ├── surefire │ ├── SwingWebstartMaven-Client-1.0.jar │ └── SwingWebstartMaven-Client-1.0.zip └── SwingWebstartMaven-Web ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ ├── resources │ │ └── webapp │ │ ├── index.html │ │ └── WEB-INF │ │ └── web.xml │ └── test └── target ├── classes ├── maven-archiver │ └── pom.properties ├── surefire ├── SwingWebstartMaven-Web-1.0 │ ├── index.html │ ├── Meta-INF │ └── WEB-INF │ ├── classes │ └── web.xml └── SwingWebstartMaven-Web-1.0.war
主要pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.shaunabram.swingwebstartmaven</groupId> <artifactId>SwingWebstartMaven</artifactId> <packaging>pom</packaging> <version>1.0</version> <name>SwingWebstartMaven Project</name> <modules> <module>SwingWebstartMaven-Client</module> <module>SwingWebstartMaven-Web</module> </modules> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <url>http://localhost:8080/manager</url> <username>tomcat</username> <password>tomcat</password> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
SwingWebstart-Client pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.shaunabram.swingwebstartmaven</groupId> <artifactId>SwingWebstartMaven</artifactId> <version>1.0</version> </parent> <artifactId>SwingWebstartMaven-Client</artifactId> <packaging>jar</packaging> <name>SwingWebstartMaven Client</name> <build> <plugins> <plugin> <groupId>org.codehaus.mojo.webstart</groupId> <artifactId>webstart-maven-plugin</artifactId> <version>1.0-beta-2</version> <executions> <execution> <id>package</id> <phase>package</phase> <goals> <goal>jnlp-inline</goal> </goals> </execution> </executions> <configuration> <jnlp> <outputFile>launch.jnlp</outputFile> <mainClass>com.shaunabram.swingwebstartmaven.HelloWorldSwing</mainClass> </jnlp> <libPath>lib</libPath> <sign> <keystore>SwingWebstartMavenExample-KeyStore</keystore> <keypass>YourPassword</keypass> <storepass>YourPassword</storepass> <alias>SwingWebstartMavenExample</alias> <validity>3650</validity> <dnameCn>Your Name</dnameCn> <dnameOu>Organizational Unit</dnameOu> <dnameO>Organization</dnameO> <dnameL>City or Locality</dnameL> <dnameSt>State or Province</dnameSt> <dnameC>US</dnameC> <verify>true</verify> <keystoreConfig> <delete>true</delete> <gen>true</gen> </keystoreConfig> </sign> <pack200>false</pack200> <gzip>true</gzip> <outputJarVersions>false</outputJarVersions> <verbose>true</verbose> </configuration> </plugin> </plugins> </build> </project>
SwingWebstartMaven-Web pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.shaunabram.swingwebstartmaven</groupId> <artifactId>SwingWebstartMaven</artifactId> <version>1.0</version> </parent> <artifactId>SwingWebstartMaven-Web</artifactId> <packaging>war</packaging> <name>SwingWebstartMaven Web</name> <dependencies> </dependencies> </project>
HelloWorldSwing.java:
package com.shaunabram.swingwebstartmaven; import javax.swing.JFrame; import javax.swing.JLabel; public class HelloWorldSwing { public static void main(String[] args) { JFrame frame = new JFrame("HelloWorldSwing"); final JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } }
template.vm:
<?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="http://localhost:8080/SwingWebstartMaven-Web/webstart" href="$outputFile"> <information> <title>Swing Webstart Maven Project</title> <vendor>ShaunAbram</vendor> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.5+" initial-heap-size="32m" max-heap-size="128m" /> <property name="jnlp.versionEnabled" value="false"/> $dependencies </resources> <application-desc main-class="$mainClass"> </application-desc> </jnlp>
谢谢.
PS:我正在使用的项目来自Shaun Abram的网站上的一个例子,这里是:http://www.shaunabram.com/swing-webstart-maven-example/.它被设计为与tomcat接口并在服务器上运行但我觉得我应该能够让它在本地工作.我只是使用SwingWebstartMaven-Client分支并忽略SwingWebstartMaven-Web分支.
PPS:我觉得我应该可以重命名包结构,但由于某种原因我不能.每当我尝试用目录结构中的姓氏替换shaunabram,我的java文件和pom.xml文件中的包声明时,它会抱怨:
[ERROR] The project com.kothur.swingwebstartmaven:SwingWebstartMaven-Client:1.0 (/media/reivei/New Volume/Project Files/SwingWebstartMaven/SwingWebstartMaven-Client/pom.xml) has 1 error [ERROR] Non-resolvable parent POM: Failure to find com.kothur.swingwebstartmaven:SwingWebstartMaven:pom:1.0 in http://repo.maven.apache.org/maven2 was cached in the local repository,resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 6,column 13 -> [Help 2]
编辑:问题与这个问题相同:I am not able launch JNLP applications using “Java Web Start”?除了在Ubuntu机器上.我很难理解作者的解决方案将如何转换为Ubuntu(我尝试将JAVAWS_HOME设置为我的jre bin并重新运行javaws但它给了我同样的问题(即Java 6启动画面启动然后停止,没有程序是发现)).双击launch.jnlp在Java 7中运行它(不是我想要的)并吐出
"Error: Unable to load resource: http://localhost:8080/SwingWebstartMaven-Web/webstart/launch.jnlp."
在那之后,我尝试了其他一些事情.主要的pom.xml有tomcat插件,我没有使用它,所以我尝试删除它,它没有做任何事情.然后我尝试创建一个tomcat服务器并将项目文件夹放在/ var / lib / tomcat7 / webapps /中.这也不会改变错误.
解决方法
至于你的Maven问题,你似乎没有安装引用的父POM,因此Maven不知道从哪个继承.您需要在父POM上执行相同的更改,安装,然后处理子POM.