我在pom.xml中有一节
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
</excludes>
</filter>
</filters>
Run Code Online (Sandbox Code Playgroud)
我想从最终jar中排除*.SF和*.DSA文件.但我收到以下消息:
[INFO] No artifact matching filter *:*
Run Code Online (Sandbox Code Playgroud)
和文件不排除.有谁知道如何克服它?
我一直在使用各种配方来使用Maven POM 为JavaFX项目生成可运行的JAR文件.这些Stackoverflow问题中的每一个都描述了同样的问题.令人沮丧的是,针对同一目标似乎有几种不同的解决方案.
问题:
java.lang.SecurityException:Manifest主要属性的签名文件摘要无效
在命令行上执行JAR文件时出错.虽然Netbeans可以愉快地运行程序并调试程序.
诊断
有关于此的几个Stackoverflow和论坛问题(下面最有用的).尽管已知问题,但我还没有找到一个与JavaFX一起使用的明确解决方案.这些答案中描述的过程不是用于捆绑JavaFX JAR 的JavaFxPackager工具:
通常的方法:这个问题的帖子流行答案(撰写本文时为255票):在我们的项目中使用非 -JavaFX模块:
但是,当我们将相同的插件放在构建JavaFX JAR文件的POM中时,我们仍然得到:" 无效的签名文件摘要 ..."错误.具体来说,我<artifactId>maven-shade-plugin</artifactId>在JavaFxPackager exec规则之前和之后放置了第一个.结果是
**题*:
如何管理JavaFX应用程序.这是<build> sectionJavaFX 的POM Netbeans设置:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<excludeScope>system</excludeScope>
<excludeGroupIds>junit,org.mockito,org.hamcrest</excludeGroupIds>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals> …Run Code Online (Sandbox Code Playgroud) 我正在使用maven来构建我的jar(Intellij IDEA IDE).它是使用Apache Camel构建的应用程序.我的pom.xml的摘录:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>MainDriver</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我能够从maven中检索一个jar文件但是在运行后我得到的是NoClassDeFFound错误.
最后,我尝试使用one-jar插件(http://one-jar.sourceforge.net/).而且我已经开始工作了.我的问题是,如果不使用一个罐子,我可以实现相同的目标吗?我不喜欢一个罐子的包装,它的作用是当你从一个罐子中提取罐子时,你会发现你的app罐子,所以你需要在你的罐子上做一个额外的提取来获得到您的课程/资源.我的配置文件在资源上,有时我需要修改它.
谢谢!
在我开始使用 MsSQL JDBC 之前,我的 Maven shade 插件运行良好
当我将 MsSql 添加到 pom.xml 并且我想运行该应用程序时,出现错误
错误:发生 JNI 错误,请检查您的安装并重试。
线程“main”中的异常java lang SecurityException
Manifest 主要属性的无效签名文件摘要
有什么建议我该如何解决?然而,Main 类是空的,只有一个简单的 main 方法。
<build>
<plugins>
<!-- Maven Shade Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<!-- add Main-Class to manifest file -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>mdb.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.2.2.jre7</version>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud) maven ×4
java ×3
maven-3 ×2
apache-camel ×1
javafx-2 ×1
jdbc ×1
maven-plugin ×1
netbeans ×1
sql ×1
sql-server ×1