diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..d2cce52425ca3d76ca43ceacd99ebc0ae1ffd59a
--- /dev/null
+++ b/gradle/dependencies.gradle
@@ -0,0 +1,38 @@
+
+dependencies {
+  implementation "ghsc:nshmp-lib:${nshmpLibVersion}"
+  nshmp "ghsc:nshmp-lib:${nshmpLibVersion}@zip"
+
+  // AWS
+  implementation "com.amazonaws:aws-lambda-java-core:${awsLambdaCoreVersion}"
+  implementation "com.amazonaws:aws-java-sdk-lambda:${awsLambdaVersion}"
+  implementation "com.amazonaws:aws-java-sdk-s3:${awsS3Version}"
+  implementation "com.amazonaws:aws-java-sdk-ec2:${awsEc2Version}"
+
+  // Micronaut
+  annotationProcessor platform("io.micronaut:micronaut-bom:${mnVersion}")
+  annotationProcessor "io.micronaut:micronaut-inject-java"
+  annotationProcessor "io.micronaut:micronaut-validation"
+  implementation platform("io.micronaut:micronaut-bom:${mnVersion}")
+  implementation "io.micronaut:micronaut-http-client"
+  implementation "io.micronaut:micronaut-inject"
+  implementation "io.micronaut:micronaut-validation"
+  implementation "io.micronaut:micronaut-runtime"
+  implementation "io.micronaut:micronaut-http-server-netty"
+  implementation "com.fasterxml.jackson.module:jackson-module-parameter-names:${jacksonVersion}"
+  runtimeOnly "ch.qos.logback:logback-classic:${logbackVersion}"
+
+  // Swagger
+  annotationProcessor("io.micronaut.configuration:micronaut-openapi:${mnOpenAPIVersion}")
+  implementation("io.swagger.core.v3:swagger-annotations:${swaggerVersion}")
+  implementation("io.swagger.core.v3:swagger-models:${swaggerVersion}")
+
+  // junit
+  testAnnotationProcessor "io.micronaut:micronaut-inject-java:${mnVersion}"
+  testImplementation platform("io.micronaut:micronaut-bom:${mnVersion}")
+  testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}"
+  testImplementation "org.junit.jupiter:junit-jupiter-api"
+  testImplementation "io.micronaut.test:micronaut-test-junit5"
+  testImplementation "io.micronaut.test:micronaut-test-spock"
+  testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
+}
diff --git a/gradle/ext.gradle b/gradle/ext.gradle
index d2f9df49ade0faedb7317233bbe5a5dbee0380d9..62ff007397def4b95746bfd70258df4dacf1b501 100644
--- a/gradle/ext.gradle
+++ b/gradle/ext.gradle
@@ -6,7 +6,8 @@ ext {
 
   propsPath = '/classes/java/main/service.properties'
 
-  nshmpLib = "libs/nshmp-haz-dep--nshmp-lib"
+  libsDir = "libs"
+  nshmpLib = "${libsDir}/nshmp-lib-artifacts"
   nshmpLibGradleDir = "${nshmpLib}/gradle"
   spotbugsDir = "${nshmpLib}/gradle"
   spotlessDir = "${nshmpLib}/src/main/resources"
diff --git a/gradle/repositories.gradle b/gradle/repositories.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..92d03c55e37ad77d05100c17ad6705d1b441f600
--- /dev/null
+++ b/gradle/repositories.gradle
@@ -0,0 +1,48 @@
+
+publishing {
+  publications {
+    library(MavenPublication) {
+      groupId = "ghsc"
+      version = project.getProperty("version")
+      version = version == "unspecified" ? "latest" : version
+      from components.java
+    }
+  }
+
+  repositories {
+    maven {
+      url "https://code.usgs.gov/api/v4/projects/2148/packages/maven"
+      name = "GitLab"
+      credentials(HttpHeaderCredentials) {
+        name = 'Job-Token'
+        value = System.getenv("CI_JOB_TOKEN")
+      }
+      authentication {
+        header(HttpHeaderAuthentication)
+      }
+    }
+  }
+}
+
+repositories {
+  jcenter()
+
+  maven {
+    url "https://code.usgs.gov/api/v4/groups/160/-/packages/maven"
+    name "GitLab"
+    if (System.getenv('CI_JOB_TOKEN')) {
+      credentials(HttpHeaderCredentials) {
+        name = 'Job-Token'
+        value = System.getenv("CI_JOB_TOKEN")
+      }
+    } else {
+      credentials(HttpHeaderCredentials) {
+        name = 'Private-Token'
+        value = System.getenv("GITLAB_TOKEN")
+      }
+    }
+    authentication {
+      header(HttpHeaderAuthentication)
+    }
+  }
+}