我正在使用Maven Appassembler插件打包我的应用程序.我想用应用程序打包一些配置文件.我找到了configurationDirectory和includeConfigurationDirectoryInClasspath参数,但我还没有找到我应该如何创建(和填充)该配置目录.我已经尝试将文件放入src/main/resources,但这只是将它们放在我的项目的jar文件中.
使用maven的"正确"方法是什么?
尝试修改现有的Java/Tomcat应用程序,以便在他们的教程之后在Heroku上进行部署,并遇到AppAssembler未找到入门类的一些问题.运行目标/ bin/webapp(或部署到Heroku)会导致Error: Could not find or load main class org.stopbadware.dsp.Main
java -cp target/classes:target/dependency/* org.stopbadware.dsp.Main然而,正确执行运行.这是pom.xml的相关部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<assembleDirectory>target</assembleDirectory>
<programs>
<program>
<mainClass>org.stopbadware.dsp.Main</mainClass>
<name>webapp</name>
</program>
</programs>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我的猜测是mvn package导致AppAssembler没有使用正确的类路径,任何建议?
该AppAssembler Maven插件确实对我产生分布的非常出色.最后一个问题是生成的Shell脚本没有执行权限,因此我需要手动设置它们.
我在Linux RedHat上
有人知道自动设置它们的干净方法吗?
[更新]原始问题(如下)已解决.我需要打电话
mvn package appassembler:assemble
Run Code Online (Sandbox Code Playgroud)
代替
mvn package
mvn appassembler:assemble
Run Code Online (Sandbox Code Playgroud)
问题:为什么会有区别?
[原版的]
我正在尝试使用maven appassembler插件来创建一个命令行工具,其中包含所有依赖项.它几乎可以工作,但缺少当前模块的工件.所有依赖工件都复制到repo,bat中的类路径包含当前工件.配置如下:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<configuration>
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
<programs>
<program>
<mainClass>${mainclass}</mainClass>
<name>huffman</name>
</program>
</programs>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我使用 appassembler-maven-plugin 生成的启动脚本有问题。我有一个基本的 spring-boot 应用程序,只有一个类:
@SpringBootApplication
public class ScriptDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ScriptDemoApplication.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
和我的 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.home.sziolkow</groupId>
<artifactId>script-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>script-demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${start-class}</mainClass>
</configuration>
<executions>
<execution>
<goals> …Run Code Online (Sandbox Code Playgroud) appassembler ×5
maven ×4
java ×2
linux ×1
maven-2 ×1
maven-3 ×1
maven-plugin ×1
packaging ×1
spring ×1
spring-boot ×1
unix ×1