Gradle Issues

Hello, I am experiencing gradle issues when I try to build, but I can’t interpret what the real problem is and how to solve it. Could I please get assistance for this? Thank you.

it looks like git isnt installed (The system cannot find the file specified)

try installing it from their website (https://git-scm.com/)

OK, I’ll try that, but I am also experiencing another error right now. Could somebody take a look at that?

Is the computer you are building on connected to the internet? You may have to connect to the internet to do your first build (it needs to download maven dependencies) then you can connect to the robot and deploy.

1 Like

We were connected to the Internet at school and at home while building but the same issue persisted. Is there something we are missing?

It would be helpful if you posted the build.gradle file that you have (or linked to it on GitHub).

It’s possible the school is blocking GitHub. You should try pasting that link in a web browser and see if it is accessible. It will ask for credentials, but you should at least get that far

1 Like

plugins {
id “java”
id “edu.wpi.first.GradleRIO” version “2024.3.2”
id “com.peterabeles.gversion” version “1.10”
id “com.diffplug.spotless” version “6.12.0”
}

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

def ROBOT_MAIN_CLASS = “org.vector8177.Main”

// Define my targets (RoboRIO) and artifacts (deployable files)
// This is added by GradleRIO’s backing project DeployUtils.
deploy {
targets {
roborio(getTargetTypeClass(‘RoboRIO’)) {
// Team number is loaded either from the .wpilib/wpilib_preferences.json
// or from command line. If not found an exception will be thrown.
// You can use getTeamOrDefault(team) instead of getTeamNumber if you
// want to store a team number in this file.
team = project.frc.getTeamNumber()
debug = project.frc.getDebugOrDefault(false)

        artifacts {
            // First part is artifact name, 2nd is artifact type
            // getTargetTypeClass is a shortcut to get the class type using a string

            frcJava(getArtifactTypeClass('FRCJavaArtifact')) {
            }

            // Static files artifact
            frcStaticFileDeploy(getArtifactTypeClass('FileTreeArtifact')) {
                files = project.fileTree('src/main/deploy')
                directory = '/home/lvuser/deploy'
            }
        }
    }
}

}

def deployArtifact = deploy.targets.roborio.artifacts.frcJava

// Set to true to use debug for JNI.
wpi.java.debugJni = false

// Set this to true to enable desktop support.
def includeDesktopSupport = true

// Configuration for AdvantageKit
repositories {
maven {
url = uri(“https://maven.pkg.github.com/Mechanical-Advantage/AdvantageKit”)
credentials {
username = “Mechanical-Advantage-Bot”
password = “\u0067\u0068\u0070\u005f\u006e\u0056\u0051\u006a\u0055\u004f\u004c\u0061\u0079\u0066\u006e\u0078\u006e\u0037\u0051\u0049\u0054\u0042\u0032\u004c\u004a\u006d\u0055\u0070\u0073\u0031\u006d\u0037\u004c\u005a\u0030\u0076\u0062\u0070\u0063\u0051”
}
}
mavenLocal()
}

configurations.all {
exclude group: “edu.wpi.first.wpilibj”
}

task(checkAkitInstall, dependsOn: “classes”, type: JavaExec) {
mainClass = “org.littletonrobotics.junction.CheckInstall”
classpath = sourceSets.main.runtimeClasspath
}
compileJava.finalizedBy checkAkitInstall

// Defining my dependencies. In this case, WPILib (+ friends), and vendor libraries.
// Also defines JUnit 4.
dependencies {
implementation wpi.java.deps.wpilib()
implementation wpi.java.vendor.java()

roborioDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.roborio)
roborioDebug wpi.java.vendor.jniDebug(wpi.platforms.roborio)

roborioRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.roborio)
roborioRelease wpi.java.vendor.jniRelease(wpi.platforms.roborio)

nativeDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.desktop)
nativeDebug wpi.java.vendor.jniDebug(wpi.platforms.desktop)
simulationDebug wpi.sim.enableDebug()

nativeRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.desktop)
nativeRelease wpi.java.vendor.jniRelease(wpi.platforms.desktop)
simulationRelease wpi.sim.enableRelease()

implementation 'gov.nist.math:jama:1.0.3'

def akitJson = new groovy.json.JsonSlurper().parseText(new File(projectDir.getAbsolutePath() + "/vendordeps/AdvantageKit.json").text)
annotationProcessor "org.littletonrobotics.akit.junction:junction-autolog:$akitJson.version"

}

test {
useJUnitPlatform()
systemProperty ‘junit.jupiter.extensions.autodetection.enabled’, ‘true’
}

// Simulation configuration (e.g. environment variables).
wpi.sim.addGui()
wpi.sim.addDriverstation()

// Setting up my Jar File. In this case, adding all libraries into the main jar (‘fat jar’)
// in order to make them all available at runtime. Also adding the manifest so WPILib
// knows where to look for our Robot Class.
jar {
from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
from sourceSets.main.allSource
manifest edu.wpi.first.gradlerio.GradleRIOPlugin.javaManifest(ROBOT_MAIN_CLASS)
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}

// Configure jar and deploy tasks
deployArtifact.jarTask = jar
wpi.java.configureExecutableTasks(jar)
wpi.java.configureTestTasks(test)

// Configure string concat to always inline compile
tasks.withType(JavaCompile) {
options.compilerArgs.add ‘-XDstringConcat=inline’
}

// Create version file
project.compileJava.dependsOn(createVersionFile)// Something is wrong
gversion {
srcDir = “src/main/java/”
classPackage = “org.vector8177”
className = “BuildConstants”
dateFormat = “yyyy-MM-dd HH:mm:ss z”
timeZone = “America/New_York”
indent = " "
}

// Spotless formatting
project.compileJava.dependsOn(spotlessApply)
spotless {
java {
target fileTree(“.”) {
include “/*.java"
exclude "
/build/", "/build-/"
}
toggleOffOn()
googleJavaFormat()
importOrder(‘//#’, ‘org.vector8177.utils’, ‘org.vector8177’,‘edu.wpi’,‘’)
removeUnusedImports()
trimTrailingWhitespace()
endWithNewline()
}
groovyGradle {
target fileTree(“.”) {
include "
/
.gradle”
exclude “/build/”, “/build-*/
}
greclipse()
indentWithSpaces(4)
trimTrailingWhitespace()
endWithNewline()
}
json {
target fileTree(“.”) {
include “/*.json"
exclude "
/build/", "/build-/"
}
gson().indentWithSpaces(2)
}
format “misc”, {
target fileTree(“.”) {
include "
/
.md”, “/.gitignore"
exclude "
/build/", "/build-*/**”
}
trimTrailingWhitespace()
indentWithSpaces(2)
endWithNewline()
}
}

Here is our build.gradle code, but I believe that the root issue has something to do with firewall. Thank you

looks like the URL for the AK is coming back as a 404

https://maven.pkg.github.com/Mechanical-Advantage/AdvantageKit

where and WHEN did you get the code from? Did you do a latest pull again to pickup any changes? Also careful if this is from older code base that might have conflicting/dependency that were moved/modified.