第1オフ:私はJavaコーダーではありません。私はJava/Mavenのツールチェーンが初めてです。私たちはHerokuのバックグラウンドワーカーとして立ち上げたいプロジェクトにJavaライブラリを使用しています。JavaでHerokuワーカープロセス用の最小限のMaven pom.xmlファイルを設定する方法は?
このプロジェクトでは、2つの外部ライブラリ、Mavenの中央リポジトリから利用可能なmongodb Javaドライバ、および別のサードパーティライブラリに依存しています。 Heroku's instructions on "Getting Started with Java"に従ってローカルでアプリを実行しようとすると、Could not find the main class: com.company.myproject.MyApp Program will exit.
のようなエラーが表示されるため、Heroku article on "unmanaged dependencies"が見えましたが、他に何かが見つからないように見えます。
依存関係をコピーするために、そのpom.xmlファイルにMavenプラグインmaven-dependency-plugin
が含まれていることがわかりました。target/classes
フォルダをチェックすると、依存関係は表示されません。
また、guide on building background workers in Javaも公開しています。そのpom.xml
にはビルドアセンブリプラグインが含まれていますが、これはもっと複雑なようです。
私はこの儀式(特にRailsから来ています)で少し失われました。これを実行するには、できるだけ簡単にpom.xml
でstatを実行したいと思います。 Heroku上のJavaワーカー用のMavenアーキタイプファイルはありますか?また、NetBeansをIDEとして使用しています。利用可能であれば、IDEツールを使用することは素晴らしいことですが、それは第2の優先事項です。
pom.xml
これまでに以下
:あなたは間違いなくtarget/dependency
ディレクトリに依存関係のすべてをコピーするmaven-dependency-plugin
を使用する必要が
<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.myproject</groupId>
<artifactId>myproject</artifactId>
<version>0.1</version>
<packaging>jar</packaging>
<name>myproject</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.thirdparty</groupId>
<artifactId>thirdparty</artifactId>
<version>0.2.9</version>
<scope>provided</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>project-local</id>
<name>Project-local Repo</name>
<url>file:${project.basedir}/repo</url>
</repository>
</repositories>
</project>
私は何かを見つけました: ''タグは悪いです。私はこれをどこから得たのか忘れてしまいます。私がそれを取り出した後、MavenはNetBeans内からでも構築され実行されました。 –
''タグは、ライブラリが何らかの外部の方法で提供されることを意味します。 –
[jcabi-heroku-maven-plugin](http://www.jcabi.com/jcabi-heroku-maven-plugin/)がお手伝いします – yegor256