8

私は工業化された大規模なMavenプロジェクトに取り組んでおり、アプリケーションモジュールでは、Androidにプッシュ通知を送信できる必要があります(新しいGoogleクラウドメッセージングを使用)。

グーグルは通知を送信するためのサーバー側ライブラリを提供しているようであり、メーリングリストによると、Mavenリポジトリを提供していません。

グーグルのドキュメントで言及されている最初のステップは次のとおりです。

Copy the gcm-server.jar file from the SDK's gcm-server/dist directory to your server classpath.

これは行わないので、jarをローカルリポジトリに追加し、エンタープライズNexusに追加します。

mvn install:install-file
 -Dfile=gcm-server.jar
 -Dsources=gcm-server-sources.jar
 -DgroupId=com.google.android.gcm
 -DartifactId=gcm-server
 -Dversion=r3
 -DgeneratePom=true
 -Dpackaging=jar

しかし、ライブラリに依存関係(simple-json、mockito、junit)があることに気づきました。実行時かテストかは正確ではありませんが、実行時に使用されるのはsimple-jsonだけだと思います。NexusからGCM依存関係を取得すると、このsimple-json libのような推移的な依存関係も取得できるはずですよね?

したがって、私は何をすべきですか?自分が所有していないプロジェクトのpomファイルを自分で作成してから、プロジェクトをMavenリポジトリにインポートする必要があります-DpomFile=my-custom-pom.xmlか?

ありがとう

4

4 に答える 4

22

ついに私は自分のpomの作成を終了しました。

ここでgithubにMavenリポジトリを作成しました: https ://github.com/slorber/gcm-server-repository

したがって、誰でもこのjarをMavenとその推移的な依存関係とともにダウンロードできます。

私がどのように行ったかがわかるように、ファイル/コマンドを追加しました。

リポジトリの追加:

<repository>
    <id>gcm-server-repository</id>
    <url>https://raw.githubusercontent.com/slorber/gcm-server-repository/master/releases/</url>
</repository>

そして依存関係:

<dependency>
    <groupId>com.google.android.gcm</groupId>
    <artifactId>gcm-server</artifactId>
    <version>1.0.2</version>
</dependency>
于 2012-08-16T16:55:39.413 に答える
3

https://groups.google.com/forum/#!msg/android-gcm/oukjcHpbLj4/lql_IzpjmUkJ%5B1-25%5Dを参照してください。

グーグルは単にこのjarファイルをMavenリポジトリに公開していないようです。2つのオプションがあります。

  1. すべての(一時的に)依存するjarをリポジトリに含めます
  2. (あなたが言ったように)あなた自身のpomファイルを作成してください

私は2番目のオプションに行きます。それほど難しいことではありません。

于 2012-08-16T15:24:43.610 に答える
3

使用して動作します:

 <dependency>
        <groupId>com.google.android.gcm</groupId>
        <artifactId>gcm-server</artifactId>
        <version>1.0.2</version>
 </dependency>

<repository>
        <id>gcm-server-repository</id>
        <url>https://github.com/slorber/gcm-server-repository/raw/master/releases/</url>
</repository>
于 2012-10-25T20:44:30.930 に答える
0

LinuxまたはMacを使用している場合は、mvn-intall-jarとして保存されている次のスクリプトを使用できます。

#!/bin/sh
# Script to mavenize any JAR files
# by Muhammad Ichsan <ichsan@gmail.com>
#

desc=$1
binary=$2
source=$3

if [ $# -lt 2 ]; then
    echo "Usage $0 <DESCRIPTION> <BINARY JAR FILE> [SOURCE JAR FILE]"
    echo "e.g. $0 com.google.android.gcm/gcm-server/2.1.4 gcm-server.jar gcm-server-src.jar"
    exit 1
fi

groupId=`echo $desc | awk -F '/' '{print $1}'`
artifactId=`echo $desc | awk -F '/' '{print $2}'`
version=`echo $desc | awk -F '/' '{print $3}'`

if [ "$version" = "" ]; then
    echo "Invalid DESCRIPTION"
    exit 1
fi

if [ "$source" != "" ]; then
    mvn install:install-file\
 -Dfile=$binary\
 -DgroupId=$groupId\
 -DartifactId=$artifactId\
 -Dversion=$version\
 -DgeneratePom=true\
 -Dpackaging=jar\
 -Dsources=$source
else
    mvn install:install-file\
 -Dfile=$binary\
 -DgroupId=$groupId\
 -DartifactId=$artifactId\
 -Dversion=$version\
 -DgeneratePom=true\
 -Dpackaging=jar
fi

そしてこれを使用してください:

<dependency>
    <groupId>com.google.android.gcm</groupId>
    <artifactId>gcm-server</artifactId>
    <version>1.0.2</version>
</dependency>
于 2013-02-21T05:14:13.783 に答える