sbt
AttributeKey
キー | 型 | 説明 |
---|---|---|
projectCommand | sbt.internal.util.AttributeKey[scala.Boolean] | |
sessionSettings | sbt.internal.util.AttributeKey[sbt.internal.SessionSettings] | |
stateBuildStructure | sbt.internal.util.AttributeKey[sbt.internal.BuildStructure] | |
transformState | sbt.internal.util.AttributeKey[scala.Function1[sbt.State, sbt.State]] | |
analysis | sbt.internal.util.AttributeKey[xsbti.compile.CompileAnalysis] | |
stateCompilerCache | sbt.internal.util.AttributeKey[xsbti.compile.GlobalsCache] | |
isModule | sbt.internal.util.AttributeKey[scala.Boolean] | |
entryApiURL | sbt.internal.util.AttributeKey[java.net.URL] | |
sessionVars | sbt.internal.util.AttributeKey[sbt.SessionVar.Map] | |
taskDefinitionKey | sbt.internal.util.AttributeKey[sbt.Def.ScopedKey[_]] | |
stateStreams | sbt.internal.util.AttributeKey[Keys.Streams] | |
triggeredBy | sbt.internal.util.AttributeKey[scala.collection.Seq[sbt.Task[_]]] | |
runBefore | sbt.internal.util.AttributeKey[scala.collection.Seq[sbt.Task[_]]] |
InputKey
キー | 型 | 説明 |
---|---|---|
run | sbt.InputKey[scala.Unit] | |
runMain | sbt.InputKey[scala.Unit] | |
bgStop | sbt.InputKey[scala.Unit] | |
bgWaitFor | sbt.InputKey[scala.Unit] | |
bgRun | sbt.InputKey[sbt.JobHandle] | |
bgRunMain | sbt.InputKey[sbt.JobHandle] | |
testOnly | sbt.InputKey[scala.Unit] | |
testQuick | sbt.InputKey[scala.Unit] |
SettingKey
キー | 型 | 説明 |
---|---|---|
logLevel | sbt.SettingKey[sbt.util.Level.Value] | |
persistLogLevel | sbt.SettingKey[sbt.util.Level.Value] | |
traceLevel | sbt.SettingKey[scala.Int] | |
persistTraceLevel | sbt.SettingKey[scala.Int] | |
showSuccess | sbt.SettingKey[scala.Boolean] | |
showTiming | sbt.SettingKey[scala.Boolean] | |
timingFormat | sbt.SettingKey[java.text.DateFormat] | |
extraLoggers | sbt.SettingKey[scala.Function1[sbt.Def.ScopedKey[_], scala.Seq[org.apache.logging.log4j.core.Appender]]] | |
logManager | sbt.SettingKey[sbt.internal.LogManager] | |
logBuffered | sbt.SettingKey[scala.Boolean] | |
sLog | sbt.SettingKey[sbt.util.Logger] | |
autoGeneratedProject | sbt.SettingKey[scala.Boolean] | |
loadedBuild | sbt.SettingKey[sbt.internal.LoadedBuild] | |
buildDependencies | sbt.SettingKey[sbt.internal.BuildDependencies] | |
appConfiguration | sbt.SettingKey[xsbti.AppConfiguration] | |
thisProject | sbt.SettingKey[sbt.ResolvedProject] | |
thisProjectRef | sbt.SettingKey[sbt.ProjectRef] | |
configuration | sbt.SettingKey[sbt.librarymanagement.Configuration] | |
commands | sbt.SettingKey[scala.Seq[sbt.Command]] | |
initialize | sbt.SettingKey[scala.Unit] | |
onLoad | sbt.SettingKey[scala.Function1[sbt.State, sbt.State]] | |
onUnload | sbt.SettingKey[scala.Function1[sbt.State, sbt.State]] | |
onLoadMessage | sbt.SettingKey[root.scala.Predef.String] | |
onComplete | sbt.SettingKey[scala.Function0[scala.Unit]] | |
historyPath | sbt.SettingKey[scala.Option[java.io.File]] | |
shellPrompt | sbt.SettingKey[scala.Function1[sbt.State, root.scala.Predef.String]] | |
autoStartServer | sbt.SettingKey[scala.Boolean] | |
serverPort | sbt.SettingKey[scala.Int] | |
serverHost | sbt.SettingKey[root.scala.Predef.String] | |
serverAuthentication | sbt.SettingKey[root.scala.Predef.Set[sbt.ServerAuthentication]] | |
serverConnectionType | sbt.SettingKey[sbt.ConnectionType] | |
watch | sbt.SettingKey[sbt.Watched] | |
suppressSbtShellNotification | sbt.SettingKey[scala.Boolean] | |
watchAntiEntropy | sbt.SettingKey[scala.concurrent.duration.FiniteDuration] | |
pollInterval | sbt.SettingKey[scala.concurrent.duration.FiniteDuration] | |
watchService | sbt.SettingKey[scala.Function0[sbt.io.WatchService]] | |
watchingMessage | sbt.SettingKey[scala.Function1[sbt.internal.io.WatchState, root.scala.Predef.String]] | |
triggeredMessage | sbt.SettingKey[scala.Function1[sbt.internal.io.WatchState, root.scala.Predef.String]] | |
baseDirectory | sbt.SettingKey[java.io.File] | |
target | sbt.SettingKey[java.io.File] | |
crossTarget | sbt.SettingKey[java.io.File] | |
sourceDirectory | sbt.SettingKey[java.io.File] | |
sourceManaged | sbt.SettingKey[java.io.File] | |
scalaSource | sbt.SettingKey[java.io.File] | |
javaSource | sbt.SettingKey[java.io.File] | |
sourceDirectories | sbt.SettingKey[scala.Seq[java.io.File]] | |
unmanagedSourceDirectories | sbt.SettingKey[scala.Seq[java.io.File]] | |
managedSourceDirectories | sbt.SettingKey[scala.Seq[java.io.File]] | |
sourcesInBase | sbt.SettingKey[scala.Boolean] | |
includeFilter | sbt.SettingKey[sbt.io.FileFilter] | |
excludeFilter | sbt.SettingKey[sbt.io.FileFilter] | |
resourceDirectory | sbt.SettingKey[java.io.File] | |
resourceManaged | sbt.SettingKey[java.io.File] | |
unmanagedResourceDirectories | sbt.SettingKey[scala.Seq[java.io.File]] | |
managedResourceDirectories | sbt.SettingKey[scala.Seq[java.io.File]] | |
resourceDirectories | sbt.SettingKey[scala.Seq[java.io.File]] | |
classDirectory | sbt.SettingKey[java.io.File] | |
cleanKeepFiles | sbt.SettingKey[scala.Seq[java.io.File]] | |
crossPaths | sbt.SettingKey[scala.Boolean] | |
taskTemporaryDirectory | sbt.SettingKey[java.io.File] | |
sourceGenerators | sbt.SettingKey[scala.Seq[sbt.Task[scala.Seq[java.io.File]]]] | |
resourceGenerators | sbt.SettingKey[scala.Seq[sbt.Task[scala.Seq[java.io.File]]]] | |
autoCompilerPlugins | sbt.SettingKey[scala.Boolean] | |
maxErrors | sbt.SettingKey[scala.Int] | |
compileOrder | sbt.SettingKey[xsbti.compile.CompileOrder] | |
initialCommands | sbt.SettingKey[root.scala.Predef.String] | |
cleanupCommands | sbt.SettingKey[root.scala.Predef.String] | |
asciiGraphWidth | sbt.SettingKey[scala.Int] | |
scalaHome | sbt.SettingKey[scala.Option[java.io.File]] | |
scalaOrganization | sbt.SettingKey[root.scala.Predef.String] | |
scalaVersion | sbt.SettingKey[root.scala.Predef.String] | |
scalaBinaryVersion | sbt.SettingKey[root.scala.Predef.String] | |
crossScalaVersions | sbt.SettingKey[scala.Seq[root.scala.Predef.String]] | |
crossVersion | sbt.SettingKey[sbt.librarymanagement.CrossVersion] | |
classpathOptions | sbt.SettingKey[xsbti.compile.ClasspathOptions] | |
sbtPlugin | sbt.SettingKey[scala.Boolean] | |
crossSbtVersions | sbt.SettingKey[scala.Seq[root.scala.Predef.String]] | |
fileInputOptions | sbt.SettingKey[scala.Seq[root.scala.Predef.String]] | |
scalaCompilerBridgeSource | sbt.SettingKey[sbt.librarymanagement.ModuleID] | |
scalaArtifacts | sbt.SettingKey[scala.Seq[root.scala.Predef.String]] | |
enableBinaryCompileAnalysis | sbt.SettingKey[scala.Boolean] | |
aggregate | sbt.SettingKey[scala.Boolean] | |
artifactPath | sbt.SettingKey[java.io.File] | |
artifact | sbt.SettingKey[sbt.librarymanagement.Artifact] | |
artifactClassifier | sbt.SettingKey[scala.Option[root.scala.Predef.String]] | |
artifactName | sbt.SettingKey[scala.Function3[sbt.librarymanagement.ScalaVersion, sbt.librarymanagement.ModuleID, sbt.librarymanagement.Artifact, root.scala.Predef.String]] | |
trapExit | sbt.SettingKey[scala.Boolean] | |
fork | sbt.SettingKey[scala.Boolean] | |
outputStrategy | sbt.SettingKey[scala.Option[sbt.OutputStrategy]] | |
connectInput | sbt.SettingKey[scala.Boolean] | |
javaHome | sbt.SettingKey[scala.Option[java.io.File]] | |
bgJobService | sbt.SettingKey[sbt.BackgroundJobService] | |
bgCopyClasspath | sbt.SettingKey[scala.Boolean] | |
testFrameworks | sbt.SettingKey[scala.Seq[sbt.TestFramework]] | |
testForkedParallel | sbt.SettingKey[scala.Boolean] | |
testResultLogger | sbt.SettingKey[sbt.TestResultLogger] | |
name | sbt.SettingKey[root.scala.Predef.String] | |
normalizedName | sbt.SettingKey[root.scala.Predef.String] | |
description | sbt.SettingKey[root.scala.Predef.String] | |
homepage | sbt.SettingKey[scala.Option[java.net.URL]] | |
startYear | sbt.SettingKey[scala.Option[scala.Int]] | |
licenses | sbt.SettingKey[scala.Seq[scala.Tuple2[root.scala.Predef.String, java.net.URL]]] | |
organization | sbt.SettingKey[root.scala.Predef.String] | |
organizationName | sbt.SettingKey[root.scala.Predef.String] | |
organizationHomepage | sbt.SettingKey[scala.Option[java.net.URL]] | |
developers | sbt.SettingKey[scala.List[sbt.librarymanagement.Developer]] | |
apiURL | sbt.SettingKey[scala.Option[java.net.URL]] | |
autoAPIMappings | sbt.SettingKey[scala.Boolean] | |
scmInfo | sbt.SettingKey[scala.Option[sbt.librarymanagement.ScmInfo]] | |
projectInfo | sbt.SettingKey[sbt.librarymanagement.ModuleInfo] | |
defaultConfiguration | sbt.SettingKey[scala.Option[sbt.librarymanagement.Configuration]] | |
exportJars | sbt.SettingKey[scala.Boolean] | |
trackInternalDependencies | sbt.SettingKey[sbt.librarymanagement.TrackLevel] | |
exportToInternal | sbt.SettingKey[sbt.librarymanagement.TrackLevel] | |
internalConfigurationMap | sbt.SettingKey[scala.Function1[sbt.librarymanagement.Configuration, sbt.librarymanagement.Configuration]] | |
ivyConfigurations | sbt.SettingKey[scala.Seq[sbt.librarymanagement.Configuration]] | |
unmanagedBase | sbt.SettingKey[java.io.File] | |
updateConfiguration | sbt.SettingKey[sbt.librarymanagement.UpdateConfiguration] | |
updateOptions | sbt.SettingKey[sbt.librarymanagement.ivy.UpdateOptions] | |
evictionWarningOptions | sbt.SettingKey[sbt.librarymanagement.EvictionWarningOptions] | |
transitiveClassifiers | sbt.SettingKey[scala.Seq[root.scala.Predef.String]] | |
sourceArtifactTypes | sbt.SettingKey[scala.Seq[root.scala.Predef.String]] | |
docArtifactTypes | sbt.SettingKey[scala.Seq[root.scala.Predef.String]] | |
makePomConfiguration | sbt.SettingKey[sbt.librarymanagement.MakePomConfiguration] | |
publishMavenStyle | sbt.SettingKey[scala.Boolean] | |
pomExtra | sbt.SettingKey[scala.xml.NodeSeq] | |
pomPostProcess | sbt.SettingKey[scala.Function1[scala.xml.Node, scala.xml.Node]] | |
pomIncludeRepository | sbt.SettingKey[scala.Function1[sbt.librarymanagement.MavenRepository, scala.Boolean]] | |
pomAllRepositories | sbt.SettingKey[scala.Boolean] | |
moduleName | sbt.SettingKey[root.scala.Predef.String] | |
version | sbt.SettingKey[root.scala.Predef.String] | |
isSnapshot | sbt.SettingKey[scala.Boolean] | |
moduleID | sbt.SettingKey[sbt.librarymanagement.ModuleID] | |
projectID | sbt.SettingKey[sbt.librarymanagement.ModuleID] | |
overrideBuildResolvers | sbt.SettingKey[scala.Boolean] | |
appResolvers | sbt.SettingKey[scala.Option[scala.Seq[sbt.librarymanagement.Resolver]]] | |
resolvers | sbt.SettingKey[scala.Seq[sbt.librarymanagement.Resolver]] | |
useJCenter | sbt.SettingKey[scala.Boolean] | |
moduleConfigurations | sbt.SettingKey[scala.Seq[sbt.librarymanagement.ModuleConfiguration]] | |
retrievePattern | sbt.SettingKey[root.scala.Predef.String] | |
retrieveConfiguration | sbt.SettingKey[scala.Option[sbt.librarymanagement.RetrieveConfiguration]] | |
offline | sbt.SettingKey[scala.Boolean] | |
ivyPaths | sbt.SettingKey[sbt.librarymanagement.ivy.IvyPaths] | |
libraryDependencies | sbt.SettingKey[scala.Seq[sbt.librarymanagement.ModuleID]] | |
dependencyOverrides | sbt.SettingKey[scala.Seq[sbt.librarymanagement.ModuleID]] | |
excludeDependencies | sbt.SettingKey[scala.Seq[sbt.librarymanagement.InclExclRule]] | |
ivyXML | sbt.SettingKey[scala.xml.NodeSeq] | |
scalaModuleInfo | sbt.SettingKey[scala.Option[sbt.librarymanagement.ScalaModuleInfo]] | |
ivyValidate | sbt.SettingKey[scala.Boolean] | |
ivyLoggingLevel | sbt.SettingKey[sbt.librarymanagement.UpdateLogging] | |
artifacts | sbt.SettingKey[scala.Seq[sbt.librarymanagement.Artifact]] | |
autoUpdate | sbt.SettingKey[scala.Boolean] | |
retrieveManaged | sbt.SettingKey[scala.Boolean] | |
retrieveManagedSync | sbt.SettingKey[scala.Boolean] | |
configurationsToRetrieve | sbt.SettingKey[scala.Option[scala.Seq[sbt.librarymanagement.ConfigRef]]] | |
managedDirectory | sbt.SettingKey[java.io.File] | |
classpathTypes | sbt.SettingKey[root.scala.Predef.Set[root.scala.Predef.String]] | |
publishArtifact | sbt.SettingKey[scala.Boolean] | |
checksums | sbt.SettingKey[scala.Seq[root.scala.Predef.String]] | |
forceUpdatePeriod | sbt.SettingKey[scala.Option[scala.concurrent.duration.FiniteDuration]] | |
compatibilityWarningOptions | sbt.SettingKey[sbt.internal.librarymanagement.CompatibilityWarningOptions] | |
conflictWarning | sbt.SettingKey[sbt.librarymanagement.ConflictWarning] | |
conflictManager | sbt.SettingKey[sbt.librarymanagement.ConflictManager] | |
autoScalaLibrary | sbt.SettingKey[scala.Boolean] | |
managedScalaInstance | sbt.SettingKey[scala.Boolean] | |
sbtResolver | sbt.SettingKey[sbt.librarymanagement.Resolver] | |
sbtDependency | sbt.SettingKey[sbt.librarymanagement.ModuleID] | |
sbtVersion | sbt.SettingKey[root.scala.Predef.String] | |
sbtBinaryVersion | sbt.SettingKey[root.scala.Predef.String] | |
templateResolverInfos | sbt.SettingKey[scala.Seq[sbt.TemplateResolverInfo]] | |
insideCI | sbt.SettingKey[scala.Boolean] | |
parallelExecution | sbt.SettingKey[scala.Boolean] | |
tags | sbt.SettingKey[scala.Seq[scala.Tuple2[sbt.Tags.Tag, scala.Int]]] | |
concurrentRestrictions | sbt.SettingKey[scala.Seq[sbt.Tags.Rule]] | |
cancelable | sbt.SettingKey[scala.Boolean] | |
forcegc | sbt.SettingKey[scala.Boolean] | |
minForcegcInterval | sbt.SettingKey[scala.concurrent.duration.Duration] | |
resolvedScoped | sbt.SettingKey[sbt.Def.ScopedKey[_]] |
TaskKey
キー | 型 | 説明 |
---|---|---|
serverLog | sbt.TaskKey[scala.Unit] | |
buildStructure | sbt.TaskKey[sbt.internal.BuildStructure] | |
watchSources | sbt.TaskKey[scala.Seq[sbt.Watched.WatchSource]] | |
watchTransitiveSources | sbt.TaskKey[scala.Seq[sbt.Watched.WatchSource]] | |
unmanagedSources | sbt.TaskKey[scala.Seq[java.io.File]] | |
managedSources | sbt.TaskKey[scala.Seq[java.io.File]] | |
sources | sbt.TaskKey[scala.Seq[java.io.File]] | |
unmanagedResources | sbt.TaskKey[scala.Seq[java.io.File]] | |
managedResources | sbt.TaskKey[scala.Seq[java.io.File]] | |
resources | sbt.TaskKey[scala.Seq[java.io.File]] | |
cleanFiles | sbt.TaskKey[scala.Seq[java.io.File]] | |
scalacOptions | sbt.TaskKey[scala.Seq[root.scala.Predef.String]] | |
javacOptions | sbt.TaskKey[scala.Seq[root.scala.Predef.String]] | |
incOptions | sbt.TaskKey[xsbti.compile.IncOptions] | |
compileOptions | sbt.TaskKey[xsbti.compile.CompileOptions] | |
compileInputs | sbt.TaskKey[xsbti.compile.Inputs] | |
scalaInstance | sbt.TaskKey[sbt.internal.inc.ScalaInstance] | |
discoveredSbtPlugins | sbt.TaskKey[sbt.internal.PluginDiscovery.DiscoveredNames] | |
pluginCrossBuild | sbt.TaskKey[scala.Unit] | |
printWarnings | sbt.TaskKey[scala.Unit] | |
clean | sbt.TaskKey[scala.Unit] | |
console | sbt.TaskKey[scala.Unit] | |
consoleQuick | sbt.TaskKey[scala.Unit] | |
consoleProject | sbt.TaskKey[scala.Unit] | |
compile | sbt.TaskKey[xsbti.compile.CompileAnalysis] | |
manipulateBytecode | sbt.TaskKey[xsbti.compile.CompileResult] | |
compileIncremental | sbt.TaskKey[xsbti.compile.CompileResult] | |
previousCompile | sbt.TaskKey[xsbti.compile.PreviousResult] | |
compilers | sbt.TaskKey[xsbti.compile.Compilers] | |
compileAnalysisFilename | sbt.TaskKey[root.scala.Predef.String] | |
compileIncSetup | sbt.TaskKey[xsbti.compile.Setup] | |
compilerCache | sbt.TaskKey[xsbti.compile.GlobalsCache] | |
classpathEntryDefinesClass | sbt.TaskKey[scala.Function1[java.io.File, xsbti.compile.DefinesClass]] | |
doc | sbt.TaskKey[java.io.File] | |
copyResources | sbt.TaskKey[scala.Seq[scala.Tuple2[java.io.File, java.io.File]]] | |
sourcePositionMappers | sbt.TaskKey[scala.Seq[scala.Function1[xsbti.Position, scala.Option[xsbti.Position]]]] | |
packageBin | sbt.TaskKey[java.io.File] | |
package |
sbt.TaskKey[java.io.File] | |
packageDoc | sbt.TaskKey[java.io.File] | |
packageSrc | sbt.TaskKey[java.io.File] | |
packageOptions | sbt.TaskKey[scala.Seq[sbt.PackageOption]] | |
packageConfiguration | sbt.TaskKey[sbt.Package.Configuration] | |
mappings | sbt.TaskKey[scala.Seq[scala.Tuple2[java.io.File, root.scala.Predef.String]]] | |
fileMappings | sbt.TaskKey[scala.Seq[scala.Tuple2[java.io.File, java.io.File]]] | |
selectMainClass | sbt.TaskKey[scala.Option[root.scala.Predef.String]] | |
mainClass | sbt.TaskKey[scala.Option[root.scala.Predef.String]] | |
discoveredMainClasses | sbt.TaskKey[scala.Seq[root.scala.Predef.String]] | |
runner | sbt.TaskKey[sbt.ScalaRun] | |
forkOptions | sbt.TaskKey[sbt.ForkOptions] | |
javaOptions | sbt.TaskKey[scala.Seq[root.scala.Predef.String]] | |
envVars | sbt.TaskKey[root.scala.Predef.Map[root.scala.Predef.String, root.scala.Predef.String]] | |
bgList | sbt.TaskKey[scala.Seq[sbt.JobHandle]] | |
ps | sbt.TaskKey[scala.Seq[sbt.JobHandle]] | |
testLoader | sbt.TaskKey[java.lang.ClassLoader] | |
loadedTestFrameworks | sbt.TaskKey[root.scala.Predef.Map[sbt.TestFramework, sbt.testing.Framework]] | |
definedTests | sbt.TaskKey[scala.Seq[sbt.TestDefinition]] | |
definedTestNames | sbt.TaskKey[scala.Seq[root.scala.Predef.String]] | |
executeTests | sbt.TaskKey[sbt.Tests.Output] | |
test | sbt.TaskKey[scala.Unit] | |
testOptions | sbt.TaskKey[scala.Seq[sbt.TestOption]] | |
testListeners | sbt.TaskKey[scala.Seq[sbt.TestReportListener]] | |
testExecution | sbt.TaskKey[sbt.Tests.Execution] | |
testFilter | sbt.TaskKey[scala.Function1[scala.Seq[root.scala.Predef.String], scala.Seq[scala.Function1[root.scala.Predef.String, scala.Boolean]]]] | |
testGrouping | sbt.TaskKey[scala.Seq[sbt.Tests.Group]] | |
apiMappings | sbt.TaskKey[root.scala.Predef.Map[java.io.File, java.net.URL]] | |
products | sbt.TaskKey[scala.Seq[java.io.File]] | |
productDirectories | sbt.TaskKey[scala.Seq[java.io.File]] | |
exportedProducts | sbt.TaskKey[Keys.Classpath] | |
exportedProductsIfMissing | sbt.TaskKey[Keys.Classpath] | |
exportedProductsNoTracking | sbt.TaskKey[Keys.Classpath] | |
unmanagedClasspath | sbt.TaskKey[Keys.Classpath] | |
unmanagedJars | sbt.TaskKey[Keys.Classpath] | |
managedClasspath | sbt.TaskKey[Keys.Classpath] | |
internalDependencyClasspath | sbt.TaskKey[Keys.Classpath] | |
externalDependencyClasspath | sbt.TaskKey[Keys.Classpath] | |
dependencyClasspath | sbt.TaskKey[Keys.Classpath] | |
fullClasspath | sbt.TaskKey[Keys.Classpath] | |
exportedProductJars | sbt.TaskKey[Keys.Classpath] | |
exportedProductJarsIfMissing | sbt.TaskKey[Keys.Classpath] | |
exportedProductJarsNoTracking | sbt.TaskKey[Keys.Classpath] | |
internalDependencyAsJars | sbt.TaskKey[Keys.Classpath] | |
dependencyClasspathAsJars | sbt.TaskKey[Keys.Classpath] | |
fullClasspathAsJars | sbt.TaskKey[Keys.Classpath] | |
classpathConfiguration | sbt.TaskKey[sbt.librarymanagement.Configuration] | |
ivyConfiguration | sbt.TaskKey[sbt.librarymanagement.ivy.IvyConfiguration] | |
bootIvyConfiguration | sbt.TaskKey[sbt.librarymanagement.ivy.IvyConfiguration] | |
moduleSettings | sbt.TaskKey[sbt.librarymanagement.ModuleSettings] | |
unresolvedWarningConfiguration | sbt.TaskKey[sbt.librarymanagement.UnresolvedWarningConfiguration] | |
dependencyPositions | sbt.TaskKey[root.scala.Predef.Map[sbt.librarymanagement.ModuleID, sbt.internal.util.SourcePosition]] | |
dependencyResolution | sbt.TaskKey[sbt.librarymanagement.DependencyResolution] | |
publisher | sbt.TaskKey[sbt.librarymanagement.Publisher] | |
ivySbt | sbt.TaskKey[sbt.internal.librarymanagement.IvySbt] | |
ivyModule | sbt.TaskKey[sbt.internal.librarymanagement.IvySbt#Module] | |
updateCacheName | sbt.TaskKey[root.scala.Predef.String] | |
update | sbt.TaskKey[sbt.librarymanagement.UpdateReport] | |
evicted | sbt.TaskKey[sbt.librarymanagement.EvictionWarning] | |
transitiveUpdate | sbt.TaskKey[scala.Seq[sbt.librarymanagement.UpdateReport]] | |
updateClassifiers | sbt.TaskKey[sbt.librarymanagement.UpdateReport] | |
updateSbtClassifiers | sbt.TaskKey[sbt.librarymanagement.UpdateReport] | |
publishConfiguration | sbt.TaskKey[sbt.librarymanagement.PublishConfiguration] | |
publishLocalConfiguration | sbt.TaskKey[sbt.librarymanagement.PublishConfiguration] | |
publishM2Configuration | sbt.TaskKey[sbt.librarymanagement.PublishConfiguration] | |
makeIvyXmlConfiguration | sbt.TaskKey[sbt.librarymanagement.PublishConfiguration] | |
makeIvyXmlLocalConfiguration | sbt.TaskKey[sbt.librarymanagement.PublishConfiguration] | |
packagedArtifacts | sbt.TaskKey[root.scala.Predef.Map[sbt.librarymanagement.Artifact, java.io.File]] | |
credentials | sbt.TaskKey[scala.Seq[sbt.librarymanagement.ivy.Credentials]] | |
makePom | sbt.TaskKey[java.io.File] | |
deliver | sbt.TaskKey[java.io.File] | |
deliverLocal | sbt.TaskKey[java.io.File] | |
makeIvyXml | sbt.TaskKey[java.io.File] | |
publish | sbt.TaskKey[scala.Unit] | |
publishLocal | sbt.TaskKey[scala.Unit] | |
publishM2 | sbt.TaskKey[scala.Unit] | |
bootResolvers | sbt.TaskKey[scala.Option[scala.Seq[sbt.librarymanagement.Resolver]]] | |
externalResolvers | sbt.TaskKey[scala.Seq[sbt.librarymanagement.Resolver]] | |
projectResolver | sbt.TaskKey[sbt.librarymanagement.Resolver] | |
fullResolvers | sbt.TaskKey[scala.Seq[sbt.librarymanagement.Resolver]] | |
otherResolvers | sbt.TaskKey[scala.Seq[sbt.librarymanagement.Resolver]] | |
dependencyCacheDirectory | sbt.TaskKey[java.io.File] | |
allDependencies | sbt.TaskKey[scala.Seq[sbt.librarymanagement.ModuleID]] | |
projectDependencies | sbt.TaskKey[scala.Seq[sbt.librarymanagement.ModuleID]] | |
publishTo | sbt.TaskKey[scala.Option[sbt.librarymanagement.Resolver]] | |
projectDescriptors | sbt.TaskKey[root.scala.Predef.Map[org.apache.ivy.core.module.id.ModuleRevisionId, org.apache.ivy.core.module.descriptor.ModuleDescriptor]] | |
packagedArtifact | sbt.TaskKey[scala.Tuple2[sbt.librarymanagement.Artifact, java.io.File]] | |
classifiersModule | sbt.TaskKey[sbt.librarymanagement.GetClassifiersModule] | |
skip | sbt.TaskKey[scala.Boolean] | |
interactionService | sbt.TaskKey[sbt.InteractionService] | |
collectAnalyses | sbt.TaskKey[scala.Unit] | |
settingsData | sbt.TaskKey[sbt.std.FullInstance.SS] | |
streams | sbt.TaskKey[Keys.TaskStreams] | |
executionRoots | sbt.TaskKey[scala.collection.Seq[sbt.Def.ScopedKey[_]]] | |
dummyRoots | sbt.Task[scala.collection.Seq[sbt.Def.ScopedKey[_]]] | |
state | sbt.TaskKey[sbt.State] | |
streamsManager | sbt.TaskKey[sbt.std.Streams[sbt.Def.ScopedKey[_]]] | |
pluginData | sbt.TaskKey[sbt.PluginData] | |
globalPluginUpdate | sbt.TaskKey[sbt.librarymanagement.UpdateReport] |
Raspbian に Java 9 をインストール
Raspbian の Oracle Java 8 のバージョンを確認してみます。
$ sudo -s # apt update # apt search oracle-java8-jdk oracle-java8-jdk/stable 8u65 armhf Java™ Platform, Standard Edition 8 Development Kit
合わせて、OpenJDK の方も確認してみます。
# apt search openjdk-8-jdk default-jdk/stable 2:1.8-58+b2 armhf Standard Java or Java compatible Development Kit default-jdk-headless/stable 2:1.8-58+b2 armhf Standard Java or Java compatible Development Kit (headless) openjdk-8-jdk/stable 8u171-b11-1~deb9u1 armhf OpenJDK Development Kit (JDK) openjdk-8-jdk-headless/stable 8u171-b11-1~deb9u1 armhf OpenJDK Development Kit (JDK) (headless)
OpenJDK の方は、8u171 なのに対して、もう一方は 8u65 ともう更新されることはないような雰囲気です。
今回、Java 8 にこだわるつもりもないので、最新をと思いたちましたが、まだ Java 10 はなかったので、Java 9 をインストールすることにしました。
# apt search jdk # apt install openjdk-9-jdk -y
openjdk-9-jdk をインストール後、以前のバージョンの JDK は削除したかったので、find /usr -name 'java'
、dpkg -l | grep gcj
、dpkg -l | grep jdk
などして、不要となったパッケージが残っていないか確認して、apt remove
で削除しました。
Java 8 と Java 10 での MixerInfo の並び順の違い
macOSでJDKのインストールにsdkmanを使っての話ですが、Java 8では声を出してくれていたコードが、Java 10で実行すると喋らないなと悩んでいたのですが、 単純にAudioSystem.getMixerInfo()が返す順序が変わっていただけということだった。
確認するためのコードは、こんな感じ
package jp.pigumer.javasound import javax.sound.sampled.AudioSystem object MixerInfoList extends App { val info = AudioSystem.getMixerInfo() info.zipWithIndex.foreach { case (mi, index) ⇒ println(s"$index: ${mi.getName}") } }
Java 8(Oracle JDK)
java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode) 0: Default Audio Device 1: Built-in Microphone 2: Built-in Output 3: Port Built-in Microphone 4: Port Built-in Output
Java 10(Oracle JDK)
java version "10.0.1" 2018-04-17 Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode) 0: Port Built-in Microphone 1: Port Built-in Output 2: Default Audio Device 3: Built-in Microphone 4: Built-in Output
Java 10(OpenJDK)
openjdk version "10" 2018-03-20 OpenJDK Runtime Environment 18.3 (build 10+46) OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode) 0: Port Built-in Microphone 1: Port Built-in Output 2: Default Audio Device 3: Built-in Microphone 4: Built-in Output
ECS タスクを Fargate でスケジュール起動
Fargate で ECS タスクを起動するためには、launchType で "FARGATE"、ネットワーク設定で awsvpc として、サブネット、セキュリティグループ等を設定する必要があります。 これらのことが、CloudWatch Event の Rule でまだ設定することができないようです。
そのため、以下のような Lambda Function を作成して、Lambda で タスクを起動するようにしてみました。
import boto3 def lambda_handler(event, context): client = boto3.client('ecs') response = client.run_task( cluster = '${ClusterArn}', taskDefinition = '${TaskArn}', count = 1, launchType = 'FARGATE', networkConfiguration = { 'awsvpcConfiguration': { 'subnets': [ '${Subnet1}', '${Subnet2}' ], 'securityGroups': [ '${SecurityGroup}' ], 'assignPublicIp': 'ENABLED' } } ) print(response) return 'Success'
run_task の cluster には、ECS Cluster の Arn を、taskDefinition には TaskDefinition の Arn が必要になります。 また、サブネット名、セキュリティグループ名も必要です。これらを、CloudFormation のテンプレートで、Export された値を ImportValue してデプロイするように、プロジェクトを作成してみました。
Fargate がついに東京に
Service
首を長くして待ってましたが、ついに Fargate が東京にやってきました。 ということで、以前米国東部 (バージニア北部) に作っていたものを、 東京(ap-northeast-1)に変えて実行してみました。
GitHub - PigumerGroup/aws-ecs-fargate
Task
polly で mp3 を生成してそれを S3 に保存する Task を Fargate で実行できるようにしてみました。
GitHub - PigumerGroup/sbt-aws-cloudformation-example
両方とも、ちゃんと実行できましたぁ。うれしい。
これからは、どんどん ECS を使っていきたい気持ちです。
スレッド数を CloudWatch のカスタムメトリクスとして Publish する
micrometer を使ってスレッド数を CloudWatch のカスタムメトリクスとして Publish してみました
// https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-cloudwatch libraryDependencies += "io.micrometer" % "micrometer-registry-cloudwatch" % "1.0.5"
package com.pigumer.example; import java.util.Properties; public class MicrometerProperties { public Properties DEFAULT; public MicrometerProperties() { DEFAULT = new Properties(); DEFAULT.setProperty("cloudwatch.enabled", "true"); DEFAULT.setProperty("cloudwatch.namespace", "MICROMETER"); DEFAULT.setProperty("cloudwatch.step", "PT1M"); DEFAULT.setProperty("cloudwatch.batchSize", "1"); } }
package com.pigumer.example; import com.amazonaws.services.cloudwatch.AmazonCloudWatchAsync; import com.amazonaws.services.cloudwatch.AmazonCloudWatchAsyncClientBuilder; import io.micrometer.cloudwatch.CloudWatchConfig; import io.micrometer.cloudwatch.CloudWatchMeterRegistry; import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics; import java.time.Duration; import java.util.Properties; import java.util.stream.IntStream; public class Main { private static AmazonCloudWatchAsync cloudWatch = AmazonCloudWatchAsyncClientBuilder.standard().withRegion("ap-northeast-1").build(); private static Clock clock = Clock.SYSTEM; private static CloudWatchConfig config = new CloudWatchConfig() { private Properties properties = new MicrometerProperties().DEFAULT; @Override public String get(String key) { return properties.getProperty(key); } }; private static Runnable sleep = () -> { try { Thread.sleep(60000); } catch (Exception e) { e.printStackTrace(); } }; public static void main(String[] args) throws Exception { CloudWatchMeterRegistry registry = new CloudWatchMeterRegistry(config, clock, cloudWatch); new JvmThreadMetrics().bindTo(registry); IntStream.range(1, 20).forEach(n -> new Thread(sleep).run()); Thread.sleep(60000 * 3); } }
スレッド数を CloudWatch のカスタムメトリクスとして Publish する
package jp.pigumer.monitor; import com.amazonaws.services.cloudwatch.AmazonCloudWatchAsync; import com.amazonaws.services.cloudwatch.AmazonCloudWatchAsyncClientBuilder; import com.amazonaws.services.cloudwatch.model.Dimension; import com.amazonaws.services.cloudwatch.model.MetricDatum; import com.amazonaws.services.cloudwatch.model.PutMetricDataRequest; import com.amazonaws.services.cloudwatch.model.StandardUnit; import java.lang.management.ManagementFactory; import java.util.Date; public class CloudWatchReporter implements Runnable { private AmazonCloudWatchAsync cloundwatch = AmazonCloudWatchAsyncClientBuilder.standard().build(); private String id; public CloudWatchReporter(String id) { this.id = id; } @Override public void run() { Double count = (double) ManagementFactory.getThreadMXBean().getThreadCount(); MetricDatum metricData = new MetricDatum() .withDimensions(new Dimension().withName("Id").withValue(id)) .withMetricName("thread_count") .withUnit(StandardUnit.Count) .withValue(count) .withTimestamp(new Date()); PutMetricDataRequest request = new PutMetricDataRequest() .withNamespace("CUSTOM/TEST") .withMetricData(metricData); cloundwatch.putMetricDataAsync(request); } }
この CloudWatchReporter を 1 分間隔で実行して CloudWatch に Publish します。
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); ScheduledFuture handler = scheduler.scheduleAtFixedRate( new CloudWatchReporter("test"), 0, 1, TimeUnit.MINUTES);