【问题标题】:Akka missing Config Properties Akka.Version Akka.StreamAkka 缺少配置属性 Akka.Version Akka.Stream
【发布时间】:2018-11-24 10:35:46
【问题描述】:

打包Akka 应用程序。

您好,我正在尝试将我的应用程序打包成一个可执行文件Jar。下面是我的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>com.personalProjects</groupId>
    <artifactId>MyAkkaProject</artifactId>
    <version>1.0</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <shadedArtifactAttached>true</shadedArtifactAttached>
                            <shadedClassifierName>allinone</shadedClassifierName>
                            <artifactSet>
                                <includes>
                                    <include>*:*</include>
                                </includes>
                            </artifactSet>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>reference.conf</resource>
                                </transformer>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <manifestEntries>
                                        <Main-Class>akka.Main</Main-Class>
                                    </manifestEntries>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-stream_2.12</artifactId>
            <version>2.5.18</version>
        </dependency>
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-stream-kafka_2.12</artifactId>
            <version>1.0-M1</version>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.1</version>
        </dependency>

        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.4.3</version>
        </dependency>

    </dependencies>

</project>

我似乎无法让Jar 工作,它指出缺少akka.streams 配置。

我浏览了官方文档here 但它似乎不起作用。

如果我将所有 Jar 复制到输出目录,一切正常,但问题似乎出在我尝试创建包含所有依赖项的 big fat jar 时。

我的MANIFEST.INF 如下:

Manifest-Version: 1.0
Main-Class: MyAkkaProject.App

其中App 是带有psvm 的类,MyAkkaProject` 是包名

【问题讨论】:

  • 确保您需要在清单条目中设置 。除此之外,我会尝试使用更新版本的 maven-shade-plugin(尽管我不希望这能解决您的问题)。执行mvn clean package 后的输出是什么? /target 目录的内容是什么?
  • @foivaras 我已经用详细信息编辑了我的问题
  • 这很奇怪......我在 akka 项目中有一个非常相似的 pom 配置,并且 fat jar 工作正常。在目标目录上,它只生成我们在屏幕截图中看到的这两个目录?没有罐子?
  • @foivaras jar 在 out 目录中创建,./out.MyAkkaProject/artifacts/myAkkaProject_jars/MyAkkaProjext.jar。您能否在git 上发布一个示例项目,以便我快速了解您是如何获得那个大肥罐的。
  • github.com/halx4/activator-akka-stream-java8 (master 分支) 1) 克隆 2) 执行mvn clean package 目标目录将是:| | akka-stream-java8_2.11-1.0-allinone.jar | akka-stream-java8_2.11-1.0.jar | +---classes +---generated-sources +---maven-archiver \---maven-status *-allinone.jar(它的大小约为15MB)是我们想要的胖jar。

标签: java akka maven-shade-plugin


【解决方案1】:

我解决了这个问题,问题是我的IDE,当我运行他的项目甚至构建它时,它没有使用Maven Lifecycle 命令,因此插件没有被触发。

【讨论】:

    猜你喜欢
    • 2015-03-11
    • 2015-05-27
    • 2019-01-04
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多