Apache Commons CLI kullanılarak GnuParser ile işlenen komut satırı argümanlarını alan bir Java uygulaması yazıyorum. Girmek için ilginç olmayan nedenlerden dolayı, bir ParseException atmak yerine bilinmeyen komut satırı seçeneklerini sessizce görmezden gelmek isterim ama bunu yapmanın bir yolunu görmüyorum. GnuParser.parse() 'da bir stopAtNonOption boolean seçeneğinin olduğunu görüyorum, ancak istediğim, bilinmeyen bir jetonla karşılaştıktan sonra işlem seçeneklerini sürdüreceği ignoreAtNonOption gibi.Can Apache Commons CLI seçenekleri ayrıştırıcı bilinmeyen komut satırı seçeneklerini görmezden geliyor mu?
Bunu gerçekleştirmek için kendi ayrıştırıcımı uygulayabilirim ancak bu işlevin yerleşik olmadığına şaşırdım, bu yüzden o yola gitmeden önce kontrol edeceğimi düşündüm. Ben neden bahsettiğimi için
örnek kod:
try {
CommandLine commandLine = parser.parse(options, args);
// stopAtNonOption set to true (below) is also not what I want
// CommandLine commandLine = parser.parse(options, args, true);
} catch (ParseException e) {
LOG.error("error parsing arguments", e);
throw new RuntimeException(e);
}
Bu çok güzel, teşekkürler! Btw, API sınıflarınızı nihai olarak gerçekten niçin yapmak istemediğinize yönelik olarak, herhangi bir API tasarımcısı için bir not olmalıdır. Niye ya? Çünkü istemci kodunun, eşyalarınızı yeniden kullanmak için kullanacağı tüm yolları anlayacak kadar akıllı değilsiniz. –
BasicParser için aynısını yaptım. Bir çekicilik gibi çalıştı! Cli API'ye kesinlikle eklenmelidir. – Dudi
Bu şimdi kullanımdan kaldırıldı :(. – Decoded