4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

oss-licenses-pluginにライセンスを手動で追加する

Last updated at Posted at 2020-07-17

Androidのoss-licenses-pluginは便利なのですが、一部のライブラリがライセンス一覧に表示されない場合があります。そこで、手動でライセンスを追加する方法を調べたところ、以下のページが見つかりました。

このコードを参考にしつつ、さらに複数のライセンスが登録しやすいようにメソッド化を行いました。

ソースコード

app/build.gradle
// 自動登録されないOSSライセンスを追加するタスク
task addOssLicenseTask {
    // generateLicensesタスクの直後に起動
    mustRunAfter tasks.findByName('generateLicenses')
    doLast {
        addOssLicense(project, "PermissionsDispatcher", "https://raw.githubusercontent.com/permissions-dispatcher/PermissionsDispatcher/master/LICENSE")
        addOssLicense(project, "PhotoView", "https://raw.githubusercontent.com/chrisbanes/PhotoView/master/LICENSE")
    }
}

// OSSライセンスを追加する
def addOssLicense(project, libName, licenseContent) {
    final String UTF_8 = "UTF-8"
    final byte[] LINE_SEPARATOR = System.getProperty("line.separator").getBytes(UTF_8)

    def dependencyOutput = new File(project.buildDir, "generated/third_party_licenses")

    def resourceOutput = new File(dependencyOutput, "/res")
    def outputDir = new File(resourceOutput, "/raw")

    // ライセンスファイル
    def licensesFile = new File(outputDir, "third_party_licenses")
    // ライセンスファイルへの書き込み前に現在の位置を保持
    def start = licensesFile.length()

    // ライセンスファイルへ書き込み
    licensesFile << licenseContent
    licensesFile << (LINE_SEPARATOR)

    // ライセンスメタデータファイルに書き込み
    def licensesMetadataFile = new File(outputDir, "third_party_license_metadata")
    licensesMetadataFile << ("${start}:${licenseContent.length()} ${libName}")
    licensesMetadataFile << (LINE_SEPARATOR)
}

// preBuild前にライセンス情報を追加する
tasks.findByPath(':app:preBuild').dependsOn addOssLicenseTask
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?