gpt4 book ai didi

android-studio - 将 swagger-codegen 项目导入现有的 Android 项目

转载 作者:行者123 更新时间:2023-12-03 17:15:19 25 4
gpt4 key购买 nike

我正在尝试将 swagger-codegen 生成的“模块”项目集成到我的 Android 项目中。

在我看来,swagger-codegen 造成了一个相当困惑的 build.gradle。

我很难找到有关如何执行此操作的文档。我觉得有点失落。

我使用了 FAQ 中描述的这种方法

mvn clean package
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-i http://petstore.swagger.io/v2/swagger.json \
-l java --library=okhttp-gson \
-o /var/tmp/java/okhttp-gson/

到目前为止,我尝试从 swagger-codegen 生成的项目中复制源代码并合并两个 gradle 构建文件。我删除了 Junit 测试,因为我无法让 Junit 依赖项工作 ( Implementing Swagger-codegen project - Error:(23, 17) Failed to resolve: junit:junit:4.12 )。但是后来我遇到了插件之间的一些冲突?

The 'java' plugin has been applied, but it is not compatible with the Android plugins.

这是 build.gradle:

import static jdk.nashorn.internal.runtime.regexp.joni.ApplyCaseFold.apply

apply plugin: 'idea'
apply plugin: 'eclipse'

group = 'io.swagger'
version = '1.0.0'

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
// classpath 'com.android.tools.build:gradle:1.5.+'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}
}

repositories {
jcenter()
maven { url 'http://repo1.maven.org/maven2' }
}


if(hasProperty('target') && target == 'android') {

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'

android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

// Rename the aar correctly
libraryVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.aar')) {
def fileName = "\u0024{project.name}- \u0024{variant.baseName}-\u0024{version}.aar"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}

dependencies {
provided 'javax.annotation:jsr250-api:1.0'
}
}

afterEvaluate {
android.libraryVariants.all { variant ->
def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
task.description = "Create jar artifact for ${variant.name}"
task.dependsOn variant.javaCompile
task.from variant.javaCompile.destinationDir
task.destinationDir = project.file("${project.buildDir}/outputs/jar")
task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
artifacts.add('archives', task);
}
}

task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}

artifacts {
archives sourcesJar
}

} else {

apply plugin: 'java'
apply plugin: 'maven'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

install {
repositories.mavenInstaller {
pom.artifactId = 'XxxxXxxx'
}
}

task execute(type:JavaExec) {
main = System.getProperty('mainClass')
classpath = sourceSets.main.runtimeClasspath
}
}

dependencies {
compile 'io.swagger:swagger-annotations:1.5.8'
compile 'com.squareup.okhttp:okhttp:2.7.5'
compile 'com.squareup.okhttp:logging-interceptor:2.7.5'
compile 'com.google.code.gson:gson:2.6.2'
compile 'joda-time:joda-time:2.9.3'
// testCompile 'junit:junit:4.12'
}

我在这里做错了什么吗?将 swagger-codegen 代码实现到我的项目中的正确方法是什么?

最佳答案

导入它的快速方法是编译 swagger 生成的项目,然后将 .jar 文件复制到我的 android 项目并将其作为库添加。

关于android-studio - 将 swagger-codegen 项目导入现有的 Android 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38694553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com