簡體   English   中英

無法將具有類'java.lang.String'的對象'url'強制轉換為類'int'的Gradle Java

[英]Cannot cast object 'url' with class 'java.lang.String' to class 'int' Gradle Java

我正在嘗試將gradle.properties讀取到我的build.gradle中。 我已經在屬性文件中定義了一些參數值,現在想將這些值傳遞給參數。 這樣它將把這個參數值傳遞給我的主方法。 但是我收到以下錯誤:

group 'org.name'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'groovy'
sourceCompatibility = 1.8
repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile "joda-time:joda-time:2.2"
    // https://mvnrepository.com/artifact/mysql/mysql-connector-java
    compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.6'
    // https://mvnrepository.com/artifact/org.dbunit/dbunit
    compile group: 'org.dbunit', name: 'dbunit', version: '2.4.7'
    compile "org.slf4j:slf4j-simple:1.7.9";
}
task runApp(type: JavaExec) {
    classpath = sourceSets.main.runtimeClasspath
    main = 'ExportDatatoXML'
    println url
    println username
    println password
    println folderPath
    // arguments to pass to the application
    args  
     [project.property('url'),project.property('username'),
      project.property('password'),project.property('folderPath')]
 }

這是我的build.gradle文件

gradle.properties文件是:

url =jdbc:mysql://127.0.0.1:3306/name
username =root
password =name
folderPath =C:/Users/name/Desktop/DataBase/

錯誤如下:

FAILURE: Build failed with an exception.

* Where:
 Build file 'C:\Users\name\IdeaProjects\HelloWorld\build.gradle' line: 36

* What went wrong:
A problem occurred evaluating root project 'AI'.
      > Cannot cast object 'jdbc:mysql://127.0.0.1:3306/name' with class 
    'java.lang.String' to class 'int'

   * Try:
       Run with --stacktrace option to get the stack trace. Run with --info 
      or --debug option to get more log output.

      BUILD FAILED

     Total time: 12.448 secs
     Cannot cast object 'jdbc:mysql://127.0.0.1:3306/name' with class 
    'java.lang.String' to class 'int'
   13:01:41: External task execution finished 'build'

JavaExec.args是一個列表,因此args[<anything>]被解釋為“類似數組的訪問”,因此必須為整數,但您可以給它一個字符串。

更換

args
 [project.property('url'),project.property('username'),
  project.property('password'),project.property('folderPath')]

具有以下之一:

args
 ([project.property('url'),project.property('username'),
  project.property('password'),project.property('folderPath')])

args project.property('url'), project.property('username'),
  project.property('password'), project.property('folderPath')

args project.url, project.username, project.password, project.folderPath

args url, username, password, folderPath

所有都應該是等效的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM