mirror of
https://github.com/jlengrand/picocli.git
synced 2026-03-10 08:41:17 +00:00
These files had mixed line endings it seems, and were always appearing as uncommitted changes in my environment, which makes it harder to see the changed state of things (I'm on Linux).
1229 lines
58 KiB
HTML
1229 lines
58 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="generator" content="Asciidoctor 2.0.10">
|
||
<title>Untitled</title>
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
|
||
<style>
|
||
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
|
||
/* Uncomment @import statement to use as custom stylesheet */
|
||
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
|
||
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
|
||
audio,video{display:inline-block}
|
||
audio:not([controls]){display:none;height:0}
|
||
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
|
||
a{background:none}
|
||
a:focus{outline:thin dotted}
|
||
a:active,a:hover{outline:0}
|
||
h1{font-size:2em;margin:.67em 0}
|
||
abbr[title]{border-bottom:1px dotted}
|
||
b,strong{font-weight:bold}
|
||
dfn{font-style:italic}
|
||
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
|
||
mark{background:#ff0;color:#000}
|
||
code,kbd,pre,samp{font-family:monospace;font-size:1em}
|
||
pre{white-space:pre-wrap}
|
||
q{quotes:"\201C" "\201D" "\2018" "\2019"}
|
||
small{font-size:80%}
|
||
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
|
||
sup{top:-.5em}
|
||
sub{bottom:-.25em}
|
||
img{border:0}
|
||
svg:not(:root){overflow:hidden}
|
||
figure{margin:0}
|
||
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
|
||
legend{border:0;padding:0}
|
||
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
|
||
button,input{line-height:normal}
|
||
button,select{text-transform:none}
|
||
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
|
||
button[disabled],html input[disabled]{cursor:default}
|
||
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
|
||
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
|
||
textarea{overflow:auto;vertical-align:top}
|
||
table{border-collapse:collapse;border-spacing:0}
|
||
*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
|
||
html,body{font-size:100%}
|
||
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
|
||
a:hover{cursor:pointer}
|
||
img,object,embed{max-width:100%;height:auto}
|
||
object,embed{height:100%}
|
||
img{-ms-interpolation-mode:bicubic}
|
||
.left{float:left!important}
|
||
.right{float:right!important}
|
||
.text-left{text-align:left!important}
|
||
.text-right{text-align:right!important}
|
||
.text-center{text-align:center!important}
|
||
.text-justify{text-align:justify!important}
|
||
.hide{display:none}
|
||
img,object,svg{display:inline-block;vertical-align:middle}
|
||
textarea{height:auto;min-height:50px}
|
||
select{width:100%}
|
||
.center{margin-left:auto;margin-right:auto}
|
||
.stretch{width:100%}
|
||
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
|
||
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
|
||
a{color:#2156a5;text-decoration:underline;line-height:inherit}
|
||
a:hover,a:focus{color:#1d4b8f}
|
||
a img{border:0}
|
||
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
|
||
p aside{font-size:.875em;line-height:1.35;font-style:italic}
|
||
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
|
||
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
|
||
h1{font-size:2.125em}
|
||
h2{font-size:1.6875em}
|
||
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
|
||
h4,h5{font-size:1.125em}
|
||
h6{font-size:1em}
|
||
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
|
||
em,i{font-style:italic;line-height:inherit}
|
||
strong,b{font-weight:bold;line-height:inherit}
|
||
small{font-size:60%;line-height:inherit}
|
||
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
|
||
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
|
||
ul,ol{margin-left:1.5em}
|
||
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
|
||
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
|
||
ul.square{list-style-type:square}
|
||
ul.circle{list-style-type:circle}
|
||
ul.disc{list-style-type:disc}
|
||
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
|
||
dl dt{margin-bottom:.3125em;font-weight:bold}
|
||
dl dd{margin-bottom:1.25em}
|
||
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
|
||
abbr{text-transform:none}
|
||
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
|
||
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
|
||
blockquote cite::before{content:"\2014 \0020"}
|
||
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
|
||
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
|
||
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
|
||
h1{font-size:2.75em}
|
||
h2{font-size:2.3125em}
|
||
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
|
||
h4{font-size:1.4375em}}
|
||
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
|
||
table thead,table tfoot{background:#f7f8f7}
|
||
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
|
||
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
|
||
table tr.even,table tr.alt{background:#f8f8f7}
|
||
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
|
||
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
|
||
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
|
||
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
|
||
.clearfix::after,.float-group::after{clear:both}
|
||
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
|
||
:not(pre)>code.nobreak{word-wrap:normal}
|
||
:not(pre)>code.nowrap{white-space:nowrap}
|
||
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
|
||
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
|
||
pre>code{display:block}
|
||
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
|
||
em em{font-style:normal}
|
||
strong strong{font-weight:400}
|
||
.keyseq{color:rgba(51,51,51,.8)}
|
||
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
|
||
.keyseq kbd:first-child{margin-left:0}
|
||
.keyseq kbd:last-child{margin-right:0}
|
||
.menuseq,.menuref{color:#000}
|
||
.menuseq b:not(.caret),.menuref{font-weight:inherit}
|
||
.menuseq{word-spacing:-.02em}
|
||
.menuseq b.caret{font-size:1.25em;line-height:.8}
|
||
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
|
||
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
|
||
b.button::before{content:"[";padding:0 3px 0 2px}
|
||
b.button::after{content:"]";padding:0 2px 0 3px}
|
||
p a>code:hover{color:rgba(0,0,0,.9)}
|
||
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
|
||
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
|
||
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
|
||
#content{margin-top:1.25em}
|
||
#content::before{content:none}
|
||
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
|
||
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
|
||
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
|
||
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
|
||
#header .details span:first-child{margin-left:-.125em}
|
||
#header .details span.email a{color:rgba(0,0,0,.85)}
|
||
#header .details br{display:none}
|
||
#header .details br+span::before{content:"\00a0\2013\00a0"}
|
||
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
|
||
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
|
||
#header #revnumber{text-transform:capitalize}
|
||
#header #revnumber::after{content:"\00a0"}
|
||
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
|
||
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
|
||
#toc>ul{margin-left:.125em}
|
||
#toc ul.sectlevel0>li>a{font-style:italic}
|
||
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
|
||
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
|
||
#toc li{line-height:1.3334;margin-top:.3334em}
|
||
#toc a{text-decoration:none}
|
||
#toc a:active{text-decoration:underline}
|
||
#toctitle{color:#7a2518;font-size:1.2em}
|
||
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
|
||
body.toc2{padding-left:15em;padding-right:0}
|
||
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
|
||
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
|
||
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
|
||
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
|
||
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
|
||
body.toc2.toc-right{padding-left:0;padding-right:15em}
|
||
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
|
||
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
|
||
#toc.toc2{width:20em}
|
||
#toc.toc2 #toctitle{font-size:1.375em}
|
||
#toc.toc2>ul{font-size:.95em}
|
||
#toc.toc2 ul ul{padding-left:1.25em}
|
||
body.toc2.toc-right{padding-left:0;padding-right:20em}}
|
||
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
|
||
#content #toc>:first-child{margin-top:0}
|
||
#content #toc>:last-child{margin-bottom:0}
|
||
#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
|
||
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
|
||
#content{margin-bottom:.625em}
|
||
.sect1{padding-bottom:.625em}
|
||
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
|
||
.sect1{padding-bottom:1.25em}}
|
||
.sect1:last-child{padding-bottom:0}
|
||
.sect1+.sect1{border-top:1px solid #e7e7e9}
|
||
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
|
||
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
|
||
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
|
||
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
|
||
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
|
||
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
|
||
details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
|
||
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
|
||
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
|
||
.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
|
||
table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
|
||
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
|
||
.admonitionblock>table td.icon{text-align:center;width:80px}
|
||
.admonitionblock>table td.icon img{max-width:none}
|
||
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
|
||
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
|
||
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
|
||
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
|
||
.exampleblock>.content>:first-child{margin-top:0}
|
||
.exampleblock>.content>:last-child{margin-bottom:0}
|
||
.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
|
||
.sidebarblock>:first-child{margin-top:0}
|
||
.sidebarblock>:last-child{margin-bottom:0}
|
||
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
|
||
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
|
||
.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
|
||
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
|
||
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
|
||
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
|
||
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
|
||
.listingblock>.content{position:relative}
|
||
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
|
||
.listingblock:hover code[data-lang]::before{display:block}
|
||
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
|
||
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
|
||
.listingblock pre.highlightjs{padding:0}
|
||
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
|
||
.listingblock pre.prettyprint{border-width:0}
|
||
.prettyprint{background:#f7f7f8}
|
||
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
|
||
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
|
||
pre.prettyprint li code[data-lang]::before{opacity:1}
|
||
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
|
||
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
|
||
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
|
||
table.linenotable td.code{padding-left:.75em}
|
||
table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
|
||
pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
|
||
pre.pygments .lineno::before{content:"";margin-right:-.125em}
|
||
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
|
||
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
|
||
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
|
||
.quoteblock blockquote{margin:0;padding:0;border:0}
|
||
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
|
||
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
|
||
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
|
||
.verseblock{margin:0 1em 1.25em}
|
||
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
|
||
.verseblock pre strong{font-weight:400}
|
||
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
|
||
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
|
||
.quoteblock .attribution br,.verseblock .attribution br{display:none}
|
||
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
|
||
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
|
||
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
|
||
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
|
||
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
|
||
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
|
||
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
|
||
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
|
||
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
|
||
table.tableblock{max-width:100%;border-collapse:separate}
|
||
p.tableblock:last-child{margin-bottom:0}
|
||
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
|
||
td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
|
||
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
|
||
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
|
||
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
|
||
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
|
||
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
|
||
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
|
||
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
|
||
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
|
||
table.frame-all{border-width:1px}
|
||
table.frame-sides{border-width:0 1px}
|
||
table.frame-topbot,table.frame-ends{border-width:1px 0}
|
||
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
|
||
th.halign-left,td.halign-left{text-align:left}
|
||
th.halign-right,td.halign-right{text-align:right}
|
||
th.halign-center,td.halign-center{text-align:center}
|
||
th.valign-top,td.valign-top{vertical-align:top}
|
||
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
|
||
th.valign-middle,td.valign-middle{vertical-align:middle}
|
||
table thead th,table tfoot th{font-weight:bold}
|
||
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
|
||
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
|
||
p.tableblock>code:only-child{background:none;padding:0}
|
||
p.tableblock{font-size:1em}
|
||
ol{margin-left:1.75em}
|
||
ul li ol{margin-left:1.5em}
|
||
dl dd{margin-left:1.125em}
|
||
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
|
||
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
|
||
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
|
||
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
|
||
ul.unstyled,ol.unstyled{margin-left:0}
|
||
ul.checklist{margin-left:.625em}
|
||
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
|
||
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
|
||
ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
|
||
ul.inline>li{margin-left:1.25em}
|
||
.unstyled dl dt{font-weight:400;font-style:normal}
|
||
ol.arabic{list-style-type:decimal}
|
||
ol.decimal{list-style-type:decimal-leading-zero}
|
||
ol.loweralpha{list-style-type:lower-alpha}
|
||
ol.upperalpha{list-style-type:upper-alpha}
|
||
ol.lowerroman{list-style-type:lower-roman}
|
||
ol.upperroman{list-style-type:upper-roman}
|
||
ol.lowergreek{list-style-type:lower-greek}
|
||
.hdlist>table,.colist>table{border:0;background:none}
|
||
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
|
||
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
|
||
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
|
||
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
|
||
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
|
||
.colist td:not([class]):first-child img{max-width:none}
|
||
.colist td:not([class]):last-child{padding:.25em 0}
|
||
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
|
||
.imageblock.left{margin:.25em .625em 1.25em 0}
|
||
.imageblock.right{margin:.25em 0 1.25em .625em}
|
||
.imageblock>.title{margin-bottom:0}
|
||
.imageblock.thumb,.imageblock.th{border-width:6px}
|
||
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
|
||
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
|
||
.image.left{margin-right:.625em}
|
||
.image.right{margin-left:.625em}
|
||
a.image{text-decoration:none;display:inline-block}
|
||
a.image object{pointer-events:none}
|
||
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
|
||
sup.footnote a,sup.footnoteref a{text-decoration:none}
|
||
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
|
||
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
|
||
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
|
||
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
|
||
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
|
||
#footnotes .footnote:last-of-type{margin-bottom:0}
|
||
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
|
||
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
|
||
.gist .file-data>table td.line-data{width:99%}
|
||
div.unbreakable{page-break-inside:avoid}
|
||
.big{font-size:larger}
|
||
.small{font-size:smaller}
|
||
.underline{text-decoration:underline}
|
||
.overline{text-decoration:overline}
|
||
.line-through{text-decoration:line-through}
|
||
.aqua{color:#00bfbf}
|
||
.aqua-background{background:#00fafa}
|
||
.black{color:#000}
|
||
.black-background{background:#000}
|
||
.blue{color:#0000bf}
|
||
.blue-background{background:#0000fa}
|
||
.fuchsia{color:#bf00bf}
|
||
.fuchsia-background{background:#fa00fa}
|
||
.gray{color:#606060}
|
||
.gray-background{background:#7d7d7d}
|
||
.green{color:#006000}
|
||
.green-background{background:#007d00}
|
||
.lime{color:#00bf00}
|
||
.lime-background{background:#00fa00}
|
||
.maroon{color:#600000}
|
||
.maroon-background{background:#7d0000}
|
||
.navy{color:#000060}
|
||
.navy-background{background:#00007d}
|
||
.olive{color:#606000}
|
||
.olive-background{background:#7d7d00}
|
||
.purple{color:#600060}
|
||
.purple-background{background:#7d007d}
|
||
.red{color:#bf0000}
|
||
.red-background{background:#fa0000}
|
||
.silver{color:#909090}
|
||
.silver-background{background:#bcbcbc}
|
||
.teal{color:#006060}
|
||
.teal-background{background:#007d7d}
|
||
.white{color:#bfbfbf}
|
||
.white-background{background:#fafafa}
|
||
.yellow{color:#bfbf00}
|
||
.yellow-background{background:#fafa00}
|
||
span.icon>.fa{cursor:default}
|
||
a span.icon>.fa{cursor:inherit}
|
||
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
|
||
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
|
||
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
|
||
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
|
||
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
|
||
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
|
||
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
|
||
.conum[data-value] *{color:#fff!important}
|
||
.conum[data-value]+b{display:none}
|
||
.conum[data-value]::after{content:attr(data-value)}
|
||
pre .conum[data-value]{position:relative;top:-.125em}
|
||
b.conum *{color:inherit!important}
|
||
.conum:not([data-value]):empty{display:none}
|
||
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
|
||
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
|
||
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
|
||
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
|
||
p{margin-bottom:1.25rem}
|
||
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
|
||
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
|
||
.print-only{display:none!important}
|
||
@page{margin:1.25cm .75cm}
|
||
@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
|
||
html{font-size:80%}
|
||
a{color:inherit!important;text-decoration:underline!important}
|
||
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
|
||
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
|
||
abbr[title]::after{content:" (" attr(title) ")"}
|
||
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
|
||
thead{display:table-header-group}
|
||
svg{max-width:100%}
|
||
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
|
||
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
|
||
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
|
||
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
|
||
body.book #header{text-align:center}
|
||
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
|
||
body.book #header .details{border:0!important;display:block;padding:0!important}
|
||
body.book #header .details span:first-child{margin-left:0!important}
|
||
body.book #header .details br{display:block}
|
||
body.book #header .details br+span::before{content:none!important}
|
||
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
|
||
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
|
||
.listingblock code[data-lang]::before{display:block}
|
||
#footer{padding:0 .9375em}
|
||
.hide-on-print{display:none!important}
|
||
.print-only{display:block!important}
|
||
.hide-for-print{display:none!important}
|
||
.show-for-print{display:inherit!important}}
|
||
@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
|
||
.sect1{padding:0!important}
|
||
.sect1+.sect1{border:0}
|
||
#footer{background:none}
|
||
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
|
||
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
|
||
</style>
|
||
<style>
|
||
.hidden {
|
||
display: none;
|
||
}
|
||
|
||
.switch {
|
||
border-width: 1px 1px 0 1px;
|
||
border-style: solid;
|
||
border-color: #7a2518;
|
||
display: inline-block;
|
||
}
|
||
|
||
.switch--item {
|
||
padding: 10px;
|
||
background-color: #ffffff;
|
||
color: #7a2518;
|
||
display: inline-block;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.switch--item.selected {
|
||
background-color: #7a2519;
|
||
color: #ffffff;
|
||
}
|
||
|
||
</style>
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/zepto/1.2.0/zepto.min.js"></script>
|
||
<script type="text/javascript">
|
||
function addBlockSwitches() {
|
||
$('.primary').each(function() {
|
||
primary = $(this);
|
||
createSwitchItem(primary, createBlockSwitch(primary)).item.addClass("selected");
|
||
primary.children('.title').remove();
|
||
});
|
||
$('.secondary').each(function(idx, node) {
|
||
secondary = $(node);
|
||
primary = findPrimary(secondary);
|
||
switchItem = createSwitchItem(secondary, primary.children('.switch'));
|
||
switchItem.content.addClass('hidden');
|
||
findPrimary(secondary).append(switchItem.content);
|
||
secondary.remove();
|
||
});
|
||
}
|
||
|
||
function createBlockSwitch(primary) {
|
||
blockSwitch = $('<div class="switch"></div>');
|
||
primary.prepend(blockSwitch);
|
||
return blockSwitch;
|
||
}
|
||
|
||
function findPrimary(secondary) {
|
||
candidate = secondary.prev();
|
||
while (!candidate.is('.primary')) {
|
||
candidate = candidate.prev();
|
||
}
|
||
return candidate;
|
||
}
|
||
|
||
function createSwitchItem(block, blockSwitch) {
|
||
blockName = block.children('.title').text();
|
||
content = block.children('.content').first().append(block.next('.colist'));
|
||
item = $('<div class="switch--item">' + blockName + '</div>');
|
||
item.on('click', '', content, function(e) {
|
||
$(this).addClass('selected');
|
||
$(this).siblings().removeClass('selected');
|
||
e.data.siblings('.content').addClass('hidden');
|
||
e.data.removeClass('hidden');
|
||
});
|
||
blockSwitch.append(item);
|
||
return {'item': item, 'content': content};
|
||
}
|
||
|
||
$(addBlockSwitches);
|
||
|
||
</script>
|
||
|
||
</head>
|
||
<body class="article">
|
||
<div id="header">
|
||
</div>
|
||
<div id="content">
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Picocli is PFM.
|
||
<a href="http://picocli.info" class="bare">http://picocli.info</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Jakub Korab (@jakekorab)<br>
|
||
<cite>https://twitter.com/jakekorab/status/1273644747639357447</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
@picocli is a cool library to create command line tools in java. Here is my experience on creating my first command line tool.. <a href="https://fullstackdeveloper.guru/2020/06/18/how-to-create-a-command-line-tool-using-java/" class="bare">https://fullstackdeveloper.guru/2020/06/18/how-to-create-a-command-line-tool-using-java/</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— The Full Stack Developer (@FullStackDevel6)<br>
|
||
<cite>https://twitter.com/FullStackDevel6/status/1273570156891926528</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
@QuarkusIO Thank you so much for Picocli integration in 1.5.0!!!
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Anthony Ikeda (@anthonyikeda)<br>
|
||
<cite>https://twitter.com/anthonyikeda/status/1268227543544389632</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
I’ve really enjoyed PicoCLI for Java as it aligns to Docker and other complex formats.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Ryan (@RRMcGuinness)<br>
|
||
<cite>https://twitter.com/RRMcGuinness/status/1264990741983608834</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Your command-line applications also deserve a good UX. I just published a gentle introduction to #Java command-line applications with #picocli. <a href="https://aragost.com/blog/java/picocli-introduction.html" class="bare">https://aragost.com/blog/java/picocli-introduction.html</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Jonas Andersen (@PrimusAlgo)<br>
|
||
<cite>https://twitter.com/PrimusAlgo/status/1262760580806393860</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Nice! Had a positive experience building @cimate_io’s native binary with #picocli as well:
|
||
<a href="https://github.com/testcontainers/testcontainers-java/blob/8377288a10a892d8ed830b59b860eb3e40a72491/.github/workflows/ci.yml#L71" class="bare">https://github.com/testcontainers/testcontainers-java/blob/8377288a10a892d8ed830b59b860eb3e40a72491/.github/workflows/ci.yml#L71</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Sergei Egorov (@bsideup)<br>
|
||
<cite>https://twitter.com/bsideup/status/1259479581817536512</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Awesome! I did use @picocli some time ago the doc is phenomenal.
|
||
Nowadays, I usually code these kind of tools using #Clojure and #babashka.
|
||
You got me interested, so I did the same one with these, 40 lines, execution is instant. No way I use bash again 🤣
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Alexandre Grison (@algrison)<br>
|
||
<cite>https://twitter.com/algrison/status/1259393589114789889</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
When it comes to building a command line tool, #Java is generally not the first language that comes to mind!
|
||
I spent the day playing with @picocli building a #covid19 tracker CLI, compiled to native binary using @graalvm! It was fun <a href="https://asciinema.org/a/aUIoDq6jRE5eYFWAJicTMmiI9" class="bare">https://asciinema.org/a/aUIoDq6jRE5eYFWAJicTMmiI9</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Mohammed Aboullaite (@laytoun)<br>
|
||
<cite>https://twitter.com/laytoun/status/1259198700397776901</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
The CLI parameter parsing is done with picocli: <a href="http://github.com/remkop/picocli/" class="bare">http://github.com/remkop/picocli/</a>
|
||
This makes really easy to create scripts that are easier to use and understand also for other humans or #AndroidDev out there Smiling face with open mouth and cold sweat You get a --help for free like here (image)
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Nicola Corti (@cortinico)<br>
|
||
<cite>https://twitter.com/cortinico/status/1258442538014380032</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Very impressed with picocli. Pretty much anything you’d want to do with a CLI. Just tried converting types and sub-subcommands. The docu is top notch, very easy to find things there: <a href="http://picocli.info" class="bare">http://picocli.info</a> #picocli #java thx
|
||
@maxandersen for tip
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Galder Zamarreño (@galderz)<br>
|
||
<cite>https://twitter.com/galderz/status/1255440605246873600</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
my impressions so far: @picocli is a great choice for cl parsing to start up a tool. #jline is great for interactive input while running. Together they are the best choice I have found so far cli tools on the #jvm. 😀 😎
|
||
but now I still need to create my PoC
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Ralf D. Müller™ (@RalfDMueller)<br>
|
||
<cite>https://twitter.com/RalfDMueller/status/1251417574782402560</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Congrats. I remember a couple of years ago when I first used it, there were maybe a couple dozen of them. Cudos and thanks for this great framework.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— George Mich (@gmich_)<br>
|
||
<cite>https://twitter.com/gmich_/status/1250159695991582720</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
I’m late to the party, but I wholeheartly recommend PicoCLI as well. Our official Neo4j tooling (the admin tool <a href="https://github.com/neo4j/neo4j/blob/4.0.3/community/command-line/src/main/java/org/neo4j/cli/AdminTool.java" class="bare">https://github.com/neo4j/neo4j/blob/4.0.3/community/command-line/src/main/java/org/neo4j/cli/AdminTool.java</a> ) uses it and I build the neo4j-migrations cli with it <a href="https://github.com/michael-simons/neo4j-migrations/tree/master/neo4j-migrations-cli" class="bare">https://github.com/michael-simons/neo4j-migrations/tree/master/neo4j-migrations-cli</a> Remko and the community did an outstanding job here.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Michael Simons (@rotnroll666)<br>
|
||
<cite>https://twitter.com/rotnroll666/status/1249262533925580800</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
We are rewriting the @micronautfw CLI with Picocli and…​ Micronaut, of course 😄
|
||
However that’s still in very early stages of development and I would not call it a good example.
|
||
@RemkoPopma surely has better ones
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Álvaro Sánchez-Mariscal (@alvaro_sanchez)<br>
|
||
<cite>https://twitter.com/alvaro_sanchez/status/1249077421023940611</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Picocli cleared a lot of issues for me
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Yuri Schimke (@yschimke)<br>
|
||
<cite>https://twitter.com/yschimke/status/1247784245491200002</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
<div class="paragraph">
|
||
<p>and uses @picocli, the best command line parser for the JVM, to read user options</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><a href="https://picocli.info" class="bare">https://picocli.info</a></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>3/3</p>
|
||
</div>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Philipp Hanslovsky (@hanslovsky)<br>
|
||
<cite>https://twitter.com/hanslovsky/status/1242863574512517121</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
明日はgraalとpicocliで遊ぶぞ
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— おれきゅー@駆け出しJavaエンジニア(@orekyuu)<br>
|
||
<cite>https://twitter.com/orekyuu/status/1239931661111853057</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
書いた
|
||
Javaのコマンドラインアプリケーション向けのフレームワーク、picocliで遊ぶ - CLOVER 🍀 <a href="https://kazuhira-r.hatenablog.com/entry/2020/03/07/013626" class="bare">https://kazuhira-r.hatenablog.com/entry/2020/03/07/013626</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— かずひら (@kazuhira_r)<br>
|
||
<cite>https://twitter.com/kazuhira_r/status/1235967549424062464</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Spring Batch、大袈裟感あるからなー。コマンドラインツールでSpring使いたいだけならpicocliじゃダメなの?って思うようになりました。
|
||
|qω・`)チラッ
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— いまいまさのぶ (@masanobuimai)<br>
|
||
<cite>https://twitter.com/masanobuimai/status/1235195432495534080</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
picocli面白い
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Nakamura Masato (@Masahito)<br>
|
||
<cite>https://twitter.com/Masahito/status/1234862173266071553</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
picocli便利でした! / KuromojiのCLIコマンドとpicocliとGraalVM-
|
||
@johtaniの日記 3rd | @johtani’s blog 3rd edition - <a href="https://blog.johtani.info/blog/2020/02/28/kuromoji-cli/" class="bare">https://blog.johtani.info/blog/2020/02/28/kuromoji-cli/</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Jun Ohtani (@johtani)<br>
|
||
<cite>https://twitter.com/johtani/status/1233696832649232384</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
とりあえず、picocliがすごく便利だってのはわかった。あと、これも。 <a href="https://github.com/palantir/gradle-graal" class="bare">https://github.com/palantir/gradle-graal</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Jun Ohtani (@johtani)<br>
|
||
<cite>https://twitter.com/johtani/status/1233223359489433600</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
picocliならspring-boot-starterもあるので
|
||
spring bootとのintegrationも簡単ですね
|
||
<a href="https://github.com/remkop/picocli/tree/master/picocli-spring-boot-starter" class="bare">https://github.com/remkop/picocli/tree/master/picocli-spring-boot-starter</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— wreulicke (@wreulicke)<br>
|
||
<cite>https://twitter.com/wreulicke/status/1232488166910648321</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
I’ve done exactly that with @picocli it was awesome.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Eduardo Gonzalez (@wm_eddie)<br>
|
||
<cite>https://twitter.com/wm_eddie/status/1228302473032429568</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
@picocli might be interesting
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Oleg Šelajev (@shelajev)<br>
|
||
<cite>https://twitter.com/shelajev/status/1228093404934017025</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="paragraph">
|
||
<p>(Replying to @picocli * What is it about picocli that makes you happy with it? * What would you do if picocli did not exist?)</p>
|
||
</div>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
<div class="paragraph">
|
||
<p>Documentation and real world use cases (I.e I found how to inject main conf instance into subcommands and also how to replace key=Val separator with : etc)</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Probably would have run my own primitive key=val thing. Would have been enough for the start, but now I have already…</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>…than planned in a lightweight setup that doesn’t get into my way.</p>
|
||
</div>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Michael Simons (@rotnroll666)<br>
|
||
<cite>https://twitter.com/rotnroll666/status/1224225614397419521</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
It’s quite nice isn’t it. I’ve turned to it when we needed a better CLI for Kettle. We’ll completely switch to it for
|
||
@projhop
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Matt Casters (@mattcasters)<br>
|
||
<cite>https://twitter.com/mattcasters/status/1218196413160488960</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
There are some projects that really, really impress me.
|
||
@picocli is one of those. So well thought of. Wow. <a href="https://picocli.info" class="bare">https://picocli.info</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Michael Simons (@rotnroll666)<br>
|
||
<cite>https://twitter.com/rotnroll666/status/1218140465863761920</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Agreed ! @picocli is awesome 👏
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— François Farquet (@FFarquet)<br>
|
||
<cite>https://twitter.com/FFarquet/status/1211779749099556869</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
あ、picocli は、 --help と --version を自分で作りこまなくて良いのが便利でした。
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— 大雪 命 (@mikoto2000)<br>
|
||
<cite>https://twitter.com/mikoto2000/status/1210188793078136832</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Spring Bootを外して,picocliだけでネイティブビルドすると問題無く,どこに持っていっても動くexeができました。 <a href="https://github.com/masanobuimai/plain-picocli" class="bare">https://github.com/masanobuimai/plain-picocli</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— いまいまさのぶ (@masanobuimai)<br>
|
||
<cite>https://twitter.com/masanobuimai/status/1202137978983743489</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
picocliはJVM言語でときめくCLIアプリを作るためのライブラリ。コマンドオプションやヘルプをいい感じに実装できる。ドキュメントを流し読みするとGraalVMのnative-imageだけでなくjlinkやjpackageでの配布もできるっぽい。
|
||
<a href="https://picocli.info" class="bare">https://picocli.info</a>
|
||
#jjug_ccc #ccc_i1
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Shunsuke Tadokoro (@todokr)<br>
|
||
<cite>https://twitter.com/todokr/status/1198050362071998465</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
PicoCli is awesome. We use it for CodeCharta.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Richard Groß (@ArghRich)<br>
|
||
<cite>https://twitter.com/ArghRich/status/1176613978988064770</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
J’utilise picocli avec groovy dans Shinobi et je confirme la puissance. On est bon pour réécrire cbsupport en @java avec @graalvm et @QuarkusIO?
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Arnaud Héritier (@aheritier)<br>
|
||
<cite>https://twitter.com/aheritier/status/1175714849025908742</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
We already included it in adr-j (<a href="https://github.com/adoble/adr-j" class="bare">https://github.com/adoble/adr-j</a>). Gradle Windows build correctly depends on <a href="https://github.com/palantir/gradle-graal/issues/184. — Thank" class="bare">https://github.com/palantir/gradle-graal/issues/184. — Thank</a> you for making the GraalVM build so easy!
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Oliver Kopp (@koppor)<br>
|
||
<cite>https://twitter.com/koppor/status/1174570961053638656</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
<div class="paragraph">
|
||
<p>TIL: @picocli CommandLine.execute uses the return code of its command as exit code if the command implements Callable<Integer>. This is also applied to all subcommands. How cool is that!!!</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><a href="https://picocli.info/#_generating_an_exit_code" class="bare">https://picocli.info/#_generating_an_exit_code</a></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>#Java #cli #commandline #interface</p>
|
||
</div>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Philipp Hanslovsky (@hanslovsky)<br>
|
||
<cite>https://twitter.com/hanslovsky/status/1173771196653015041</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Bash completion file available as paintera_completion on the release page, auto-generated with the amazing @picocli CLI <a href="https://github.com/saalfeldlab/paintera/releases/tag/paintera-0.18.0" class="bare">https://github.com/saalfeldlab/paintera/releases/tag/paintera-0.18.0</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Philipp Hanslovsky (@hanslovsky)<br>
|
||
<cite>https://twitter.com/hanslovsky/status/1158845336737255425</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Kotlinで素敵にCLIやりたくなってpicocli調べてる
|
||
<a href="https://picocli.info" class="bare">https://picocli.info</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— ふりぎ🗝 (@huruikagi)<br>
|
||
<cite>https://twitter.com/huruikagi/status/1152929954666958848</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Blog を書きました。Picocli は usage を自動できれいに表示してくれるし、自動補完コマンドが作れるし、とても面白いです。https://ksby.hatenablog.com/entry/2019/07/20/092721
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— かんがるー (@ksbyzero)<br>
|
||
<cite>https://twitter.com/ksbyzero/status/1152375792409559040</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
(je viens de mater picocli et Akka et…​. bah il se pourrait que ça soit super-utile pour mon projet ^^ #BrunoLesBonsTuyaux )
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Original Codester (@furyGnu)<br>
|
||
<cite>https://twitter.com/furyGnu/status/1144587101188624384</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Definitely support the picocli recommendation, a game changer for Java cli in my opinion
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Philipp Hanslovsky (@hanslovsky)<br>
|
||
<cite>https://twitter.com/hanslovsky/status/1143626502749249538</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
args4jとかApacheCommons CLIよりもっとモダンなコマンドラインオプションパーサーないのかって思って探したらpicocliってやつが良かった
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— くろみー (@clomie)<br>
|
||
<cite>https://twitter.com/clomie/status/1141970640104148992</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Picocliはマジで神
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Snow Days (@snow_days_world)<br>
|
||
<cite>https://twitter.com/snow_days_world/status/1141729392734830592</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
picocli!Java CLI parser。
|
||
機会あってたまたま探していたら、コレコレ!!POSIX/GNU拡張にも対応し、読めば読むほど気配りが素晴らしい!
|
||
3年前に出会えなかったのが残念。。残ってるコードは全部書き直す。ゾッコン!
|
||
jcommander/args4j、今までありがとう!commons cli、君は相変わらずだね。。
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— ISHIZUKA Ryuhei (@kacchi123)<br>
|
||
<cite>https://twitter.com/kacchi123/status/1132987377004101633</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Building command line applications. How about making it user-friendly? Check picocli - powerfully packed with numerous features, extensible - <a href="https://picocli.info" class="bare">https://picocli.info</a>
|
||
#Java #CLI #picocli
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Yogesh Jadhav (@yogeshcjadhav)<br>
|
||
<cite>https://twitter.com/yogeshcjadhav/status/1126385514368598017</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
@picocli You’re pretty great! Documentaiton is awesome too!
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Y. Alonso (@yalogar)<br>
|
||
<cite>https://twitter.com/yalogar/status/1111282399290249216</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
<div class="paragraph">
|
||
<p>Are you looking for an awesome Java command line parser? Check out picocli by @RemkoPopma, the best parser I have used in any language to date!!</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><a href="https://picocli.info" class="bare">https://picocli.info</a></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>#java #cli #commandline #picocli</p>
|
||
</div>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Philipp Hanslovsky (@hanslovsky)<br>
|
||
<cite>https://twitter.com/hanslovsky/status/1098033103359090689</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Sure I’ll try to give some feedback whenever I can. I honestly think is a great project.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Mario García (@marioggar)<br>
|
||
<cite>https://twitter.com/marioggar/status/1094344655762800642</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
@picocli, I love you! Easy to implement a complex command line tool!!! 🤩 🧙🏼🧙🏼
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Victor Osório (@vepo)<br>
|
||
<cite>https://twitter.com/vepo/status/1093910172186144768</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
CLIライブラリの picocli 知らなかったけど便利そう
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Junichiro Kazama (@jkazama77)<br>
|
||
<cite>https://twitter.com/jkazama77/status/1085371016191213568</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Stumbled across @picocli <a href="https://github.com/remkop/picocli" class="bare">https://github.com/remkop/picocli</a>, quite a breath of fresh air for developing CLI applications. #java #cli #development #commandline
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Hein Smith (@hein_smith)<br>
|
||
<cite>https://twitter.com/hein_smith/status/1081519315143311360</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
2/ I struggled for a long to make a commandline my #ami software . Now I’ve discovered a wonderful #opensource library that does everything I want and more. @picocli! and the movie <a href="https://drive.google.com/open?id=1640xhsdk5XbwNLBHr5DGaYQhgzRs8aSZ" class="bare">https://drive.google.com/open?id=1640xhsdk5XbwNLBHr5DGaYQhgzRs8aSZ</a> has a feel-good ending! Open is about sharing and collaboration.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Peter Murray-Rust (@petermurrayrust)<br>
|
||
<cite>https://twitter.com/petermurrayrust/status/1070598252666515456</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
3/ Three days ago I discovered a wonderful tool @picocli that does everything I want (and more). It’s #opensource Apache2 licence and it’s clearly got a vibrant community. New issues every few days and new point releases.
|
||
WOW! …​
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Peter Murray-Rust (@petermurrayrust)<br>
|
||
<cite>https://twitter.com/petermurrayrust/status/1070309783402676225</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Writing commandline apps with @java 11, @picocli and @graalvm and having the time of my life!
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Oliver Weiler (@helpermethod)<br>
|
||
<cite>https://twitter.com/helpermethod/status/1062614593451843584</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
@picocli is awesome, especially when paired with @graalvm native image generation!
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Arash Shahkar (@amizrash)<br>
|
||
<cite>https://twitter.com/amizrash/status/1057320573729001472</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Checkstyle migrated from Apache CLI to @picocli (will be released in 8.15), finally documentation of CLI arguments become well organized in declarative way in code - <a href="https://github.com/checkstyle/checkstyle/blob/master/src/main/java/com/puppycrawl/tools/checkstyle/Main.java#L569" class="bare">https://github.com/checkstyle/checkstyle/blob/master/src/main/java/com/puppycrawl/tools/checkstyle/Main.java#L569</a> , and now checkstyle’s CLI is following CLI’s best practices.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Checkstyle (@checkstyle_java)<br>
|
||
<cite>https://twitter.com/checkstyle_java/status/1057246772089606144</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
a shout out to the @picocli project and @RemkoPopma - we’ve been using #picocli for the stand-alone JAR / executable for a while and are very happy with it
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Karate (@KarateDSL)<br>
|
||
<cite>https://twitter.com/KarateDSL/status/1044795145806209025</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
@picocli Looks like the modern java CLI parser you’ve been looking for. I certainly have and like it. Pretty much so.
|
||
<a href="https://picocli.info" class="bare">https://picocli.info</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Wolfgang Werner (@0xcafebabe)<br>
|
||
<cite>https://twitter.com/0xcafebabe/status/1037726380245635072</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
picocli might be the most comprehensive getopt-alike ever developed, no joke
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Sean Champ (@spchamp)<br>
|
||
<cite>https://twitter.com/spchamp/status/1028892160370700288</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Picocli is actually a nice piece of work! #java
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Christian Grobmeier (@grobmeier)<br>
|
||
<cite>https://twitter.com/grobmeier/status/997550576417296384</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Picocli rulez
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— George Mich (@gmich_)<br>
|
||
<cite>https://twitter.com/gmich_/status/972057738128785409</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
#Picocli and #Groovy: two of my favorite Java technologies together!
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Andrea Cisternino (@acister64)<br>
|
||
<cite>https://twitter.com/acister64/status/949569348267597825</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
picocli is a great tool. Saving me a ton of time. Great features.
|
||
<a href="http://picocli.info" class="bare">http://picocli.info</a>
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Maiden Lane (@rjs2006)<br>
|
||
<cite>https://twitter.com/rjs2006/status/941073118638034945</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="quoteblock">
|
||
<blockquote>
|
||
Thanks for the shoutout! I am currently using picocli for a cool company project and I’m really liking it.
|
||
</blockquote>
|
||
<div class="attribution">
|
||
— Stephen M. Coakley (@sagebind)<br>
|
||
<cite>https://twitter.com/sagebind/status/926603239402983424</cite>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
</div>
|
||
<div id="footer">
|
||
<div id="footer-text">
|
||
Version 4.5.2<br>
|
||
Last updated 2020-06-23 09:25:30 +0900
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html> |