java - 尝试将本地依赖项添加到heroku java应用程序时,接收无法解决依赖项错误

标签 java maven heroku

我正在尝试按照 Heroku 上的“向 Maven 项目添加非托管依赖项”一文,将本地 JAR 依赖项添加到 java 项目。 我一直卡在更新 Pom 文件部分,它告诉我添加/更新存储库元素。 我将示例存储库元素添加到我的 pom.xml 文件中,当我尝试将代码推送到 heroku 时,我收到以下错误:

Failed to execute goal on project fuji: Could not resolve dependencies for project com.example.fuji:fuji:jar:1.0-SNAPSHOT: Could not find artifact com.example.tambora:Tambora:jar:0.0.1-SNAPSHOT in project.local

看来我将存储库 id 或 name 元素命名错误,但我不知道它们也应该更改什么。 我能够在本地运行此应用程序而不会收到任何错误。

这是我的 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.example.fuji</groupId>
  <artifactId>fuji</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Fuji</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>com.example.tambora</groupId>
      <artifactId>Tambora</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-logging-juli</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper-el</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jsp-api</artifactId>
        <version>7.0.22</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>fuji</finalName>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <version>1.1.1</version>
            <configuration>
                <assembleDirectory>target</assembleDirectory>
                <programs>
                    <program>
                        <mainClass>launch.Main</mainClass>
                        <name>webapp</name>
                    </program>
                </programs>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>assemble</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
  </build>
  <repositories>
    <!--other repositories if any-->
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
</repositories>
</project>

最佳答案

发生这种情况的原因可能是 com.example.tambora:Tambora:jar:0.0.1-SNAPSHOT 是一个 SNAPSHOT,但尚未为您的自定义存储库启用 SNAPSHOT。根据Maven: The Complete Reference ,这是必需的:

As a default setting, Maven will not check for SNAPSHOT releases on remote repositories. To depend on SNAPSHOT releases, users must explicitly enable the ability to download snapshots using a repository or pluginRepository element in the POM.

你应该能够像this一样:

<repository>
    <id>project.local</id>
    <name>project</name>
    <url>file:${project.basedir}/repo</url>
    <snapshots>
        <enabled>true</enabled>
    <checksumPolicy>fail</checksumPolicy>
  </snapshots>
</repository>

此外,在本地排除此问题时,我建议删除您的 ~/.m2/repo/com/example/tambora 目录,因为可能发生的情况是 Maven 在您的本地中查找 JAR存储库而不是嵌入到您的项目中的存储库。

关于java - 尝试将本地依赖项添加到heroku java应用程序时,接收无法解决依赖项错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116784/

相关文章:

ruby-on-rails - 想在 Heroku 上使用 Redis (Redis::CannotConnectError ( Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)) )

java - SlidingUpPanel 崩溃

java - JPA减速异常

java - 我可以在运行时更改 Spark 的执行程序内存吗?

java - 如何动态设置嵌入式 WildFly 服务器以使用 Maven 进行测试

ruby-on-rails - Heroku 中的 unicorn ?为什么不在开发中?

ruby-on-rails - 在 Heroku 上升级到 sidekiq 4.0.1 后出现内存配额错误

java - 通过ActionListener更新JPanel内容

java - maven project 和 sbt project and play framework 是否考虑共享一个存储库?

java - 未定义名为 'PlaceDAO' 的 bean